User prompt
Please fix the bug: 'Uncaught TypeError: self.attachAsset is not a function' in or related to this line: 'var rocher_gros_sprite = self.attachAsset('large_rock', {' Line Number: 230
User prompt
Please fix the bug: 'Uncaught TypeError: self.attachAsset is not a function' in or related to this line: 'var rocher_moyen_sprite = self.attachAsset('medium_rock', {' Line Number: 226
User prompt
Please fix the bug: 'Uncaught TypeError: self.attachAsset is not a function' in or related to this line: 'var rocher_petit_sprite = self.attachAsset('small_rock', {' Line Number: 222
Code edit (3 edits merged)
Please save this source code
User prompt
Please fix the bug: 'Uncaught ReferenceError: _this is not defined' in or related to this line: 'var rocher_petit_sprite = _this.attachAsset('small_rock', {' Line Number: 222
User prompt
Please fix the bug: 'Uncaught TypeError: Cannot set properties of undefined (setting 'name')' in or related to this line: 'self.name = "rocher";' Line Number: 211
Code edit (2 edits merged)
Please save this source code
User prompt
Please fix the bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'y')' in or related to this line: 'var zoneMiniy = RoadZone.y;' Line Number: 280
Code edit (12 edits merged)
Please save this source code
User prompt
Please fix the bug: 'Uncaught ReferenceError: playersZoneWidth is not defined' in or related to this line: 'var RoadZone = {' Line Number: 280
Code edit (1 edits merged)
Please save this source code
User prompt
Please fix the bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'width')' in or related to this line: 'var ComputerZone = {' Line Number: 138
Code edit (3 edits merged)
Please save this source code
User prompt
Please fix the bug: 'TypeError: humanZoneInstance is undefined' in or related to this line: 'var RoadZone = {' Line Number: 459
Code edit (1 edits merged)
Please save this source code
User prompt
Please fix the bug: 'TypeError: humanZoneInstance is undefined' in or related to this line: 'var RoadZone = {' Line Number: 459
User prompt
Please fix the bug: 'TypeError: humanZoneInstance is undefined' in or related to this line: 'var RoadZone = {' Line Number: 459
User prompt
Please fix the bug: 'ReferenceError: playersZoneWidth is not defined' in or related to this line: 'var RoadZone = {' Line Number: 458
User prompt
Please fix the bug: 'TypeError: RoadZone is undefined' in or related to this line: 'var zoneMiniy = RoadZone.y;' Line Number: 457
User prompt
May you add this line in the game? let rochers = generateRandomRock(nbRochers); //création des rochers
User prompt
Please fix the bug: 'ReferenceError: RoadZone is not defined' in or related to this line: 'var roadZoneInstance = new RoadZone();' Line Number: 434
User prompt
Please fix the bug: 'ReferenceError: ScoreZone is not defined' in or related to this line: 'self.height = game.height - ScoreZone.height - OptionsZone.height;' Line Number: 85
User prompt
May you replace LargeRock, MediumRock, and SmallRock by this Constructor : class Rocher { constructor(tailleRocher = petitRocher, x = RoadZone.width/2, y = RoadZone.height/2) { this.name = "rocher"; this.dxHotLeftSpot = petitRocherDxHotLeft; //Offset du point chaud du sprite (point de contact avec le rocher a gauche) décalage par rapport au point d'ancrage this.dyHotLeftSpot = petitRocherDyHotLeft; this.dxHotRightSpot = petitRocherDxHotRight; //Offset du point chaud du sprite (point de contact avec le rocher a droite) décalage par rapport au point d'ancrage this.dyHotRightSpot = petitRocherDyHotRight; this.isBeingPushed = false; //Flag qui indique si le rocher est pousse par un buldo this.vitesse = 0.0; this.pushedByHuman = null; //BuldoRock qui pousse le rocher this.pushedByOrdi = null; //BuldoZer qui pousse le rocher this.totalPushers = 0; //Nombre de buldos qui poussent le rocher (+1 pour un buldoRock, -1 pour un buldoZer) //Ajout des assets // Chargez l'image contenant les sprites : 3 sprites de 100x100px sur une ligne. let rochers_textures = []; // Tableau pour stocker les textures des rochers let baseTexture2 = /* to complete LK correct lines */ for (let i = 0; i < 3; i++) { let texture = /* to complete with LK correct lines */ } // Créez des sprites individuels à partir des textures : l'ancrage est au centre du sprite let rocher_petit_sprite = /* to complete with LK correct lines */ let rocher_moyen_sprite = /* to complete with LK correct lines */ let rocher_gros_sprite = /* to complete with LK correct lines */ //Taille du rocher this.tailleRocher = tailleRocher; //taille du rocher (2=petit, 4=moyen, 8=gros) this.sprite = /* to complete with LK correct lines */ if (typeof tailleRocher === 'object') { this.sprite.x = tailleRocher.x || RoadZone.width/2; this.sprite.y = tailleRocher.y || RoadZone.height/2; this.tailleRocher = tailleRocher.tailleRocher || petitRocher; } //Attribution du sprite en fonction de la taille du rocher if (this.tailleRocher == petitRocher) { this.sprite = rocher_petit_sprite; } if (this.tailleRocher == moyenRocher) { this.sprite = rocher_moyen_sprite; } if (this.tailleRocher == grosRocher) { this.sprite = rocher_gros_sprite; } this.sprite.x = x; this.sprite.y = y; //Ancrage et echelle du sprite rocher par defaut this.sprite.anchor.set(0.5); this.sprite.scale.set(1.0); //Attribution des offsets du point chaud en fonction de la taille du rocher if (this.tailleRocher == petitRocher) { this.dxHotLeftSpot = petitRocherDxHotLeft; this.dyHotLeftSpot = petitRocherDyHotLeft; this.dxHotRightSpot = petitRocherDxHotRight; this.dyHotRightSpot = petitRocherDyHotRight; } if (this.tailleRocher == moyenRocher) { this.dxHotLeftSpot = moyenRocherDxHotLeft; this.dyHotLeftSpot = moyenRocherDyHotLeft; this.dxHotRightSpot = moyenRocherDxHotRight; this.dyHotRightSpot = moyenRocherDyHotRight; } if (this.tailleRocher == grosRocher) { this.dxHotLeftSpot = grosRocherDxHotLeft; this.dyHotLeftSpot = grosRocherDyHotLeft; this.dxHotRightSpot = grosRocherDxHotRight; this.dyHotRightSpot = grosRocherDyHotRight; } //Attribution du nom du sprite rocher if (this.tailleRocher == petitRocher) { this.name = "Petit Rocher"; } if (this.tailleRocher == moyenRocher) { this.name = "Moyen Rocher"; } if (this.tailleRocher == grosRocher) { this.name = "Gros Rocher"; } }//fin constructor
User prompt
May you add this list of variables to the game : //PARAMETRES DIVERS DU JEU let nbRochers = 10; //nombre de rochers let vitesseBuldo = 8.0; //vitesse de déplacement des buldos a vide, vitesse/2 quand ils poussent un petit rocher, vitesse/4 pour un moyen, vitesse/8 pour un gros let humanCamp = 1; //camp du joueur humain let ordiCamp = -1; //camp du joueur ordinateur let ancrageMedian = 0.5; //ancrage median des sprites let buldoRockHotSpotX = 35;//92; //hotspot X du sprite buldoRock, offset du sprite par rapport à l'ancrage let buldoRockHotSpotY = 0; //hotspot Y du sprite buldoRock let buldoRockBkHotSpotX = -40; //hotspot arriere du buldoRock let buldoRockBkHotSpotY = 0; let buldoZerHotSpotX = -35;//-43; //hotspot X du sprite buldoZer, offset du sprite par rapport à l'ancrage let buldoZerHotSpotY = 0; //hotspot Y du sprite buldoZer let buldoZerBkHotSpotX = 35; //hotspot arriere du buldoZer let buldoZerBkHotSpotY = 0; let petitRocher = 2; //taille du rocher (2=petit, 4=moyen, 8=gros) let petitRocherDxHotLeft = -16;//-45; //hotspot X du sprite petitRocher, offset du sprite par rapport à l'ancrage let petitRocherDyHotLeft = 0; //hotspot Y du sprite petitRocher let petitRocherDxHotRight = 20;//45; //hotspot X du sprite petitRocher, offset du sprite par rapport à l'ancrage let petitRocherDyHotRight = 0; //hotspot Y du sprite petitRocher let moyenRocher = 4; //taille du rocher (2=petit, 4=moyen, 8=gros) let moyenRocherDxHotLeft = -35; //hotspot X du sprite moyenRocher, offset du sprite par rapport à l'ancrage let moyenRocherDyHotLeft = 0; //hotspot Y du sprite moyenRocher let moyenRocherDxHotRight = 15; //hotspot X du sprite moyenRocher, offset du sprite par rapport à l'ancrage let moyenRocherDyHotRight = 0; //hotspot Y du sprite moyenRocher let grosRocher = 8; //taille du rocher (2=petit, 4=moyen, 8=gros) let grosRocherDxHotLeft = -40; //hotspot X du sprite grosRocher, offset du sprite par rapport à l'ancrage let grosRocherDyHotLeft = 0; //hotspot Y du sprite grosRocher let grosRocherDxHotRight = 45; //hotspot X du sprite grosRocher, offset du sprite par rapport à l'ancrage let grosRocherDyHotRight = 0; //hotspot Y du sprite grosRocher let typeRotation = 1; //Type 1 = rotation let typeLigneHtoX = 2; //Type 2 = déplacement horizontal vers une position X let typeLigneVtoY = 3; //Type 3 = déplacement vertical vers une position Y
User prompt
May you replace the function placeRockRandomly by this function : function generateRandomRock(nombreRochers) { //Calcul de positions aléatoire pour les rochers dans la zone de route let zoneMiniy = RoadZone.y; let zoneMaxiy = RoadZone.y + RoadZone.height; //Calcul des ordonnees possibles pour les rochers entre zoneMiniy + 50 et zoneMaxiy - 50 let ordonneesPossibles = []; for (let i = zoneMiniy + 50; i < zoneMaxiy - 50; i += 100) { ordonneesPossibles.push(i); } //Securite : si le nombre de rochers demande est superieur au nombre d'ordonnees possibles, on ajuste le nombre de rochers if (nombreRochers > ordonneesPossibles.length) { nombreRochers = ordonneesPossibles.length; } let rochers = []; //Creation des rochers for (let i = 0; i < nombreRochers; i++) { // Choisir une taille de rocher aléatoire let sizes = [petitRocher, moyenRocher, grosRocher]; let size = sizes[Math.floor(Math.random() * sizes.length)]; // Choisir une abscisse aléatoire pour le rocher let zoneMinix = RoadZone.x + 100; let zoneMaxix = RoadZone.x + RoadZone.width - 100; let x = Math.random() * (zoneMaxix - zoneMinix) + zoneMinix; //Choix d'une ordonnee aleatoire en supprimant l'ordonnee choisie precedemment let index = Math.floor(Math.random() * ordonneesPossibles.length); let y = ordonneesPossibles[index]; ordonneesPossibles.splice(index, 1); // Créer le rocher let rock = new Rocher(size,x, y); rochers.push(rock); } return rochers; }//fin generateRandomRock
===================================================================
--- original.js
+++ change.js
@@ -78,8 +78,12 @@
color: 0x0000FF
});
self.addChild(graphics);
});
+
+/****
+* Initialize Game
+****/
/*
Game Zones:
- The game is played on a 2048x2732 pixels screen.
0. let playersZoneWidth = 200;
@@ -102,129 +106,8 @@
- The game ends when all rocks have been moved out of the RoadZone. The winner is the one with the highest score, based on the number and size of rocks successfully moved to the opposing zone.
- The goal for the human player is to move all the rocks to the ComputerZone while preventing the computer from doing the same. Effective strategy and skillful bulldozer management are necessary to maximize the score.
There is no time limit in this game, and players must use their judgment to determine the best way to move rocks and use their bulldozers to win the game.
*/
-var LargeRock = Container.expand(function () {
- var self = Container.call(this);
- var rockGraphics = self.attachAsset('largeRock', {
- anchorX: 0.5,
- anchorY: 0.5
- });
- self.size = 'large';
- self.points = 3;
- self.interactive = true;
- self.buttonMode = true;
- self.on('down', function (obj) {
- // Trigger event to handle rock selection and bulldozer assignment
- LK.trigger('rockSelected', {
- rock: self
- });
- });
- self.update = function () {
- // Large rock specific update code here
- };
-});
-var MediumRock = Container.expand(function () {
- var self = Container.call(this);
- var rockGraphics = self.attachAsset('mediumRock', {
- anchorX: 0.5,
- anchorY: 0.5
- });
- self.size = 'medium';
- self.points = 2;
- self.interactive = true;
- self.buttonMode = true;
- self.on('down', function (obj) {
- LK.trigger('rockSelected', {
- rock: self
- });
- });
- self.update = function () {
- // Medium rock specific update code here
- };
-});
-var OptionsZone = Container.expand(function () {
- var self = Container.call(this);
- self.width = game.width;
- self.height = game.height * 200 / 2732;
- self.x = 0;
- self.y = game.height - self.height;
- var graphics = self.attachAsset('shape', {
- width: self.width,
- height: self.height,
- color: 0xFFFFFF
- });
-});
-var RoadZone = Container.expand(function () {
- var self = Container.call(this);
- self.width = game.width - HumanZone.width - ComputerZone.width;
- self.height = HumanZone.height;
- self.x = HumanZone.width;
- self.y = ScoreZone.height;
- var graphics = self.attachAsset('shape', {
- width: self.width,
- height: self.height,
- color: 0x808080
- });
-});
-// This change assumes the creation of a SpecialRock class
-// This change assumes that a progress display function will be added globally
-// Function to update game progress display
-/**** // Create animations for bulldozers and rocks// Add time limits or special rocks
-var timeLimit = 120; // Time limit in seconds // Time limit in seconds
-var timerText = new Text2(timeLimit.toString(), { size: 150, fill: '#ffffff' });
-timerText.anchor.set(.5, 0);
-LK.gui.top.addChild(timerText);
-var timerText = new Text2(timeLimit.toString(), { size: 150, fill: '#ffffff' });
-timerText.anchor.set(.5, 0);
-LK.gui.top.addChild(timerText);
-var specialRocks = []; // Array to hold special rocks
-function createSpecialRocks() {
-// Code to create special rocks that require multiple hits
-}
-function animateBulldozerPushing(bulldozer) {
-// Animation code for bulldozer pushing
-}
-function animateRockDestruction(rock) {
-// Animation code for rock destruction
-}
-* Classes
-****/
-var ScoreZone = Container.expand(function () {
- var self = Container.call(this);
- self.width = game.width;
- self.height = game.height * 200 / 2732;
- self.x = 0;
- self.y = 0;
- var graphics = self.attachAsset('shape', {
- width: self.width,
- height: self.height,
- color: 0x00FF00
- });
-});
-var SmallRock = Container.expand(function () {
- var self = Container.call(this);
- var rockGraphics = self.attachAsset('smallRock', {
- anchorX: 0.5,
- anchorY: 0.5
- });
- self.size = 'small';
- self.points = 1;
- self.interactive = true;
- self.buttonMode = true;
- self.on('down', function (obj) {
- LK.trigger('rockSelected', {
- rock: self
- });
- });
- self.update = function () {
- // Small rock specific update code here
- };
-});
-
-/****
-* Initialize Game
-****/
/*
Game Zones:
- The game is played on a 2048x2732 pixels screen.
0. let playersZoneWidth = 200;
@@ -272,9 +155,219 @@
/****
* Game Code
****/
+/*
+Game Zones:
+- The game is played on a 2048x2732 pixels screen.
+0. let playersZoneWidth = 200;
+1. let ScoreZone = {x: 0, y: 0, width: app.screen.width, height: 200};
+2. let OptionsZone = {x: 0, y: app.screen.height-200, width: app.screen.width, height: 200};
+3. let HumanZone = {x: 0, y: 200, width: playersZoneWidth, height: app.screen.height-OptionsZone.height-ScoreZone.height};
+4. let ComputerZone = {x: app.screen.width-playersZoneWidth, y: 200, width: playersZoneWidth, height: app.screen.height-OptionsZone.height-ScoreZone.height};
+5. let RoadZone = {x: playersZoneWidth, y: 200, width: app.screen.width-HumanZone.width-OrdiZone.width, height: app.screen.height-OptionsZone.height-ScoreZone.height};
+- At the start of the game, 10 rocks of three different sizes are randomly placed in the RoadZone.
+- Each player has two bulldozers to move the rocks.
+- A bulldozer moving without pushing anything has a base speed V.
+- When a bulldozer pushes a small rock, the combined speed is V/2.
+- When a bulldozer pushes a medium rock, the combined speed is V/4.
+- When a bulldozer pushes a large rock, the combined speed is V/8.
+- When two bulldozers push a rock together, one behind the other, the pushing speeds are doubled compared to the speed of a single bulldozer.
+- The human player clicks on a rock to command the nearest free bulldozer to push it towards the ComputerZone.
+- The computer-controlled bulldozers randomly choose a rock and push it towards the HumanZone.
+- If a human bulldozer is free, the player can click on a rock already being pushed to have the bulldozer move behind the first one and push the rock faster.
+- It is possible to push a rock that is being pushed by the opponent to block or slow down its movement. If a second bulldozer is added in this situation, the rock will be pushed in the direction where there are fewer bulldozers.
+- The game ends when all rocks have been moved out of the RoadZone. The winner is the one with the highest score, based on the number and size of rocks successfully moved to the opposing zone.
+- The goal for the human player is to move all the rocks to the ComputerZone while preventing the computer from doing the same. Effective strategy and skillful bulldozer management are necessary to maximize the score.
+There is no time limit in this game, and players must use their judgment to determine the best way to move rocks and use their bulldozers to win the game.
+*/
//PARAMETRES DIVERS DU JEU
+function _typeof(o) {
+ "@babel/helpers - typeof";
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
+ return typeof o;
+ } : function (o) {
+ return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
+ }, _typeof(o);
+}
+function _defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) {
+ descriptor.writable = true;
+ }
+ Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);
+ }
+}
+function _createClass(Constructor, protoProps, staticProps) {
+ if (protoProps) {
+ _defineProperties(Constructor.prototype, protoProps);
+ }
+ if (staticProps) {
+ _defineProperties(Constructor, staticProps);
+ }
+ Object.defineProperty(Constructor, "prototype", {
+ writable: false
+ });
+ return Constructor;
+}
+function _toPropertyKey(t) {
+ var i = _toPrimitive(t, "string");
+ return "symbol" == _typeof(i) ? i : String(i);
+}
+function _toPrimitive(t, r) {
+ if ("object" != _typeof(t) || !t) {
+ return t;
+ }
+ var e = t[Symbol.toPrimitive];
+ if (void 0 !== e) {
+ var i = e.call(t, r || "default");
+ if ("object" != _typeof(i)) {
+ return i;
+ }
+ throw new TypeError("@@toPrimitive must return a primitive value.");
+ }
+ return ("string" === r ? String : Number)(t);
+}
+function _classCallCheck(instance, Constructor) {
+ if (!(instance instanceof Constructor)) {
+ throw new TypeError("Cannot call a class as a function");
+ }
+}
+function _callSuper(t, o, e) {
+ return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e));
+}
+function _possibleConstructorReturn(self, call) {
+ if (call && (_typeof(call) === "object" || typeof call === "function")) {
+ return call;
+ } else if (call !== void 0) {
+ throw new TypeError("Derived constructors may only return object or undefined");
+ }
+ return _assertThisInitialized(self);
+}
+function _assertThisInitialized(self) {
+ if (self === void 0) {
+ throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+ }
+ return self;
+}
+function _isNativeReflectConstruct() {
+ try {
+ var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
+ } catch (t) {}
+ return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {
+ return !!t;
+ })();
+}
+function _getPrototypeOf(o) {
+ _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {
+ return o.__proto__ || Object.getPrototypeOf(o);
+ };
+ return _getPrototypeOf(o);
+}
+function _inherits(subClass, superClass) {
+ if (typeof superClass !== "function" && superClass !== null) {
+ throw new TypeError("Super expression must either be null or a function");
+ }
+ subClass.prototype = Object.create(superClass && superClass.prototype, {
+ constructor: {
+ value: subClass,
+ writable: true,
+ configurable: true
+ }
+ });
+ Object.defineProperty(subClass, "prototype", {
+ writable: false
+ });
+ if (superClass) {
+ _setPrototypeOf(subClass, superClass);
+ }
+}
+function _setPrototypeOf(o, p) {
+ _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {
+ o.__proto__ = p;
+ return o;
+ };
+ return _setPrototypeOf(o, p);
+}
+var Rocher = /*#__PURE__*/function (_Container) {
+ _inherits(Rocher, _Container);
+ function Rocher() {
+ var _this;
+ var tailleRocher = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : petitRocher;
+ var x = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : RoadZone.width / 2;
+ var y = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : RoadZone.height / 2;
+ _classCallCheck(this, Rocher);
+ _this = _callSuper(this, Rocher);
+ _this.name = "rocher";
+ _this.dxHotLeftSpot = petitRocherDxHotLeft;
+ _this.dyHotLeftSpot = petitRocherDyHotLeft;
+ _this.dxHotRightSpot = petitRocherDxHotRight;
+ _this.dyHotRightSpot = petitRocherDyHotRight;
+ _this.isBeingPushed = false;
+ _this.vitesse = 0.0;
+ _this.pushedByHuman = null;
+ _this.pushedByOrdi = null;
+ _this.totalPushers = 0;
+ var rocher_petit_sprite = _this.attachAsset('small_rock', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ var rocher_moyen_sprite = _this.attachAsset('medium_rock', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ var rocher_gros_sprite = _this.attachAsset('large_rock', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ _this.tailleRocher = tailleRocher;
+ if (_this.tailleRocher == petitRocher) {
+ _this.sprite = rocher_petit_sprite;
+ }
+ if (_this.tailleRocher == moyenRocher) {
+ _this.sprite = rocher_moyen_sprite;
+ }
+ if (_this.tailleRocher == grosRocher) {
+ _this.sprite = rocher_gros_sprite;
+ }
+ _this.sprite.x = x;
+ _this.sprite.y = y;
+ _this.sprite.anchor.set(0.5);
+ _this.sprite.scale.set(1.0);
+ if (_this.tailleRocher == petitRocher) {
+ _this.dxHotLeftSpot = petitRocherDxHotLeft;
+ _this.dyHotLeftSpot = petitRocherDyHotLeft;
+ _this.dxHotRightSpot = petitRocherDxHotRight;
+ _this.dyHotRightSpot = petitRocherDyHotRight;
+ }
+ if (_this.tailleRocher == moyenRocher) {
+ _this.dxHotLeftSpot = moyenRocherDxHotLeft;
+ _this.dyHotLeftSpot = moyenRocherDyHotLeft;
+ _this.dxHotRightSpot = moyenRocherDxHotRight;
+ _this.dyHotRightSpot = moyenRocherDyHotRight;
+ }
+ if (_this.tailleRocher == grosRocher) {
+ _this.dxHotLeftSpot = grosRocherDxHotLeft;
+ _this.dyHotLeftSpot = grosRocherDyHotLeft;
+ _this.dxHotRightSpot = grosRocherDxHotRight;
+ _this.dyHotRightSpot = grosRocherDyHotRight;
+ }
+ if (_this.tailleRocher == petitRocher) {
+ _this.name = "Petit Rocher";
+ }
+ if (_this.tailleRocher == moyenRocher) {
+ _this.name = "Moyen Rocher";
+ }
+ if (_this.tailleRocher == grosRocher) {
+ _this.name = "Gros Rocher";
+ }
+ return _this;
+ }
+ return _createClass(Rocher);
+}(Container);
var nbRochers = 10; //nombre de rochers
var vitesseBuldo = 8.0; //vitesse de déplacement des buldos a vide, vitesse/2 quand ils poussent un petit rocher, vitesse/4 pour un moyen, vitesse/8 pour un gros
var humanCamp = 1; //camp du joueur humain
var ordiCamp = -1; //camp du joueur ordinateur
A small rock
a rock without any shadow and four time smaller than the original.
Blue color
a rock is being crunched so there is smoke and peaces of rocks viewed from top.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Un trophée de victoire sous forme d'une coupe d'où s'échappe un feu d'artifice.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Red bulldozer viewed strictly from top. Top view as if we are a drone.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Remove yellow lines.