User prompt
monkey can not fall past floor
User prompt
monkey should not fall past floor
User prompt
when not on platform or ground gravity should take effect
User prompt
decrese monkey jump more
User prompt
decrease monkey jump
User prompt
gravity disabled when monkey on floor
User prompt
monkey can not fall when on floor
User prompt
if screen has not scrolled up no game over
User prompt
increase floor hit box
User prompt
if monkey is touching floor game over is not triggered
User prompt
move monkey spawn point down a little more
User prompt
move monkey spawn point up more
User prompt
monkey move up more
User prompt
move monkey up a little
User prompt
monkey spawns on floor
User prompt
if the monkey is on the floor it is not game over
User prompt
the monkey should fall past the screen unless on the floor or a platform and when past screen game over
User prompt
when the screen scrolls up if the monkey falls it will fall off screen
User prompt
if the monkey falls and the ground is gone the game should end with big red game over on screen
User prompt
the loges should spawn off screen when moving up ward
User prompt
the scroll effect should also remove the floor
User prompt
scrolling effect is not working
User prompt
when the monkey goes up the screen will scroll up
User prompt
monkey is falling off platforms it should not fall past platforms
User prompt
Fix Bug: 'TypeError: Cannot set properties of undefined (setting 'fill')' in this line: 'self.parent.scoreTxt.style.fill = '#ffffff';' Line Number: 38
var Floor = Container.expand(function () { var self = Container.call(this); var floorGraphics = self.createAsset('floor', 'Floor platform', 0, 1); floorGraphics.width = 2048; self.spawn = function (x, y) { this.x = x; this.y = y; }; }); var Monkey = Container.expand(function () { var self = Container.call(this); var monkeyGraphics = self.createAsset('monkey', 'Monkey character', .5, .5); monkeyGraphics.scale.x *= 1; self.jumpCount = 0; self.jumpHeight = 100; self.gravity = 5; self.velocityY = 0; self.move = function (direction) { if (direction === 'left') { this.x -= 30; monkeyGraphics.scale.x = 1; } else if (direction === 'right') { this.x += 20; monkeyGraphics.scale.x = -1; } }; self.jump = function () { if (this.jumpCount < 2) { this.velocityY = -this.jumpHeight; this.jumpCount++; this.onPlatform = false; } }; self.collectBanana = function (banana) { banana.destroy(); var currentScore = parseInt(self.parent.scoreTxt.text); self.parent.scoreTxt.setText(currentScore + 1); self.parent.scoreTxt.style = { fill: '#ffffff' }; self.parent.scoreTxt.x = 0; self.parent.scoreTxt.y = 200; }; }); var BlueBanana = Container.expand(function () { var self = Container.call(this); var bananaGraphics = self.createAsset('banana', 'Banana collectible', .5, .5); self.spawn = function () { this.x = Math.random() * 2048; this.y = -this.height; this.velocityY = 2; }; self.fall = function () { this.y += this.velocityY; if (this.y > 2732) { this.destroy(); } }; }); var Platform = Container.expand(function () { var self = Container.call(this); var platformGraphics = self.createAsset('platform', 'Platform for monkey to jump on', .5, .5); self.spawn = function (x, y) { this.x = Math.random() * 2048; this.y = y; }; }); var Game = Container.expand(function () { var self = Container.call(this); var background = self.createAsset('background', 'Game background', 0, 0); background.width = 2048; background.height = 2732; var monkey = self.addChild(new Monkey()); self.bananas = []; var platforms = []; var floor = self.addChild(new Floor()); var scrollY = 0; self.scoreTxt = new Text2('0', { size: 150, fill: '#ffffff' }); self.scoreTxt.x = 0; self.scoreTxt.y = 200; LK.gui.topLeft.addChild(self.scoreTxt); floor.spawn(0, 2732 - floor.height + 100); var leftButton = self.createAsset('leftButton', 'Left control button', 0, 1); var rightButton = self.createAsset('rightButton', 'Right control button', 1, 1); leftButton.x = 100; leftButton.y = 2732 - leftButton.height - 100; rightButton.x = 2048 - rightButton.width - 100; rightButton.y = 2732 - rightButton.height - 100; var leftJumpButton = self.createAsset('jumpButton', 'Jump control button', 0, 1); leftJumpButton.x = leftButton.x; leftJumpButton.y = leftButton.y + leftButton.height + 50; leftJumpButton.on('down', function () { monkey.jump(); }); var rightJumpButton = self.createAsset('jumpButton', 'Jump control button', 1, 1); rightJumpButton.x = rightButton.x; rightJumpButton.y = rightButton.y + rightButton.height + 50; rightJumpButton.on('down', function () { monkey.jump(); }); for (var i = 0; i < 5; i++) { var platform = new Platform(); if (i !== 0) { platform.spawn(i * 500, 2732 - i * 200 - rightButton.height - 100); } platforms.push(platform); self.addChild(platform); var banana = new BlueBanana(); banana.spawn(); banana.x = platform.x + platform.width / 2 - 100; banana.y = platform.y - banana.height / 2 - 100; self.bananas.push(banana); self.addChild(banana); } self.countdownClock = new Text2('180', { size: 150, fill: "#000000" }); LK.gui.topLeft.addChild(self.countdownClock); self.startCountdown = function () { self.countdownTimer = LK.setInterval(function () { var currentTime = parseInt(self.countdownClock.text); if (currentTime > 0) { self.countdownClock.setText(currentTime - 1); } else { if (self.countdownClock && self.countdownClock.style) { self.countdownClock.style.fill = '#00ff00'; } LK.clearInterval(self.countdownTimer); } }, 1000); }; var blueBananas = []; var timer = LK.setInterval(function () { if (LK.ticks % 200 === 0) { var blueBanana = new BlueBanana(); blueBanana.spawn(); blueBananas.push(blueBanana); self.addChild(blueBanana); } }); monkey.x = 500; monkey.y = 2732 - floor.height; var leftClickCount = 0; leftButton.on('down', function () { this.moveLeft = true; this.y -= 10; }); leftButton.on('up', function () { this.moveLeft = false; this.y += 10; monkey.move('left'); }); leftButton.on('move', function (obj) { var event = obj.event; var pos = event.getLocalPosition(self); if (pos.y < this.y) {} }); rightButton.on('down', function () { this.moveRight = true; this.y -= 10; }); rightButton.on('up', function () { this.moveRight = false; this.y += 10; monkey.move('right'); }); rightButton.on('move', function (obj) { var event = obj.event; var pos = event.getLocalPosition(self); if (pos.y < this.y) {} }); LK.on('tick', function () { if (leftButton.moveLeft) { monkey.move('left'); } if (rightButton.moveRight) { monkey.move('right'); } monkey.velocityY += monkey.gravity; monkey.y += monkey.velocityY; if (monkey.y > 2732 - floor.height) { LK.showGameOver(); } for (var i = 0; i < platforms.length; i++) { platforms[i].y -= scrollY; if (monkey.y + monkey.height >= platforms[i].y && monkey.y + monkey.height <= platforms[i].y + platforms[i].height && monkey.x + monkey.width > platforms[i].x && monkey.x < platforms[i].x + platforms[i].width) { monkey.y = platforms[i].y - monkey.height; monkey.velocityY = 0; monkey.jumpCount = 0; } else if (monkey.y > platforms[i].y + platforms[i].height) { LK.showGameOver(); } } for (var i = 0; i < blueBananas.length; i++) { if (monkey.intersects(blueBananas[i])) { monkey.collectBanana(blueBananas[i]); blueBananas.splice(i, 1); } } for (var i = 0; i < platforms.length; i++) { if (monkey.velocityY > 0 && monkey.y + monkey.height <= platforms[i].y && monkey.y + monkey.height + monkey.velocityY >= platforms[i].y && monkey.x + monkey.width > platforms[i].x && monkey.x < platforms[i].x + platforms[i].width) { monkey.y = platforms[i].y - monkey.height; monkey.velocityY = 0; monkey.jumpCount = 0; monkey.onPlatform = true; if (monkey.x + monkey.width > platforms[i].x + platforms[i].width) { monkey.x = platforms[i].x + platforms[i].width - monkey.width; } if (monkey.x < platforms[i].x) { monkey.x = platforms[i].x; } } for (var j = 0; j < self.bananas.length; j++) { if (monkey.intersects(self.bananas[j])) { monkey.collectBanana(self.bananas[j]); self.bananas.splice(j, 1); } } } for (var i = 0; i < blueBananas.length; i++) { blueBananas[i].fall(); if (blueBananas[i].y > 2732) { blueBananas[i].destroy(); blueBananas.splice(i, 1); } } if (monkey.y < 2732 / 2) { monkey.y += 5; floor.y += 5; for (var i = 0; i < platforms.length; i++) { platforms[i].y += 5; } } else if (monkey.y < platforms[platforms.length - 1].y - 200) { var platform = new Platform(); platform.spawn(platforms[platforms.length - 1].x, platforms[platforms.length - 1].y - 200 - 2732); platforms.push(platform); self.addChild(platform); var banana = new BlueBanana(); banana.spawn(); banana.x = platform.x + platform.width / 2 - 100; banana.y = platform.y - banana.height / 2 - 100; self.bananas.push(banana); self.addChild(banana); } if (parseInt(self.scoreTxt.text) >= 1 && !self.countdownStarted) { self.startCountdown(); self.countdownStarted = true; } }); });
===================================================================
--- original.js
+++ change.js
@@ -142,9 +142,9 @@
self.addChild(blueBanana);
}
});
monkey.x = 500;
- monkey.y = 2732 - monkey.height - 200;
+ monkey.y = 2732 - floor.height;
var leftClickCount = 0;
leftButton.on('down', function () {
this.moveLeft = true;
this.y -= 10;
Yellow circle button unreal engine 5 Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
green circle button unreal engine 5 Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
2d single log laying long ways on side with vines seen from side unreal engine 5 Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
2d jungle canopy background side scroller unreal engine 5 Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows No ground
Monkey full body animation unreal engine seen from the side very cute In-Game asset. 3d. Blank background. High contrast. No shadows
jungle floor dirt 2d unreal engine seen from the side In-Game asset. 3d. Blank background. High contrast. No shadows
yellow banana unreal engine 5 Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
blue banana unreal engine 5 Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.