Code edit (1 edits merged)
Please save this source code
User prompt
update the score and scorelabel text every frame when thrown is true.
Code edit (13 edits merged)
Please save this source code
User prompt
make a score label top center of screen
Code edit (1 edits merged)
Please save this source code
Code edit (1 edits merged)
Please save this source code
Code edit (10 edits merged)
Please save this source code
User prompt
create an actionmeter at the bottom of the screen
Code edit (11 edits merged)
Please save this source code
User prompt
make a text label at the bottom of the screen: "Tap to throw the javelin"
Code edit (1 edits merged)
Please save this source code
Code edit (2 edits merged)
Please save this source code
User prompt
update the javelin.moce() function so that the javelin orbits the moon.
Code edit (1 edits merged)
Please save this source code
Code edit (1 edits merged)
Please save this source code
Code edit (9 edits merged)
Please save this source code
User prompt
Add the astronaut to the scene
Code edit (1 edits merged)
Please save this source code
User prompt
add the background graphics to the game, before the moon is added.
User prompt
create a fullscreen background image
User prompt
Add a round moon oibject in center of screen
Initial prompt
Lunar Javelin Throw
/**** * Classes ****/ // Assets will be automatically generated based on usage in the code. // Javelin class var Javelin = Container.expand(function () { var self = Container.call(this); var javelinGraphics1 = self.attachAsset('javelin', { anchorX: 0.5, anchorY: 0.5, rotation: Math.PI / 4 }); var javelinGraphics2 = self.attachAsset('javelin', { anchorX: 0.5, anchorY: 0.5, rotation: Math.PI / 4, scaleY: -1, scaleX: -1, x: 100 }); self.speedX = 0; self.speedY = 0; self.scale.x = 0.8; self.scale.y = 0.8; self.rotation = -0.30; self.orbitSpeed = 0.045; self.angle = 4.6; self.radius = 570; //670 - 20 * (100 / 20); console.log('radius ' + self.radius); self.move = function () { //self.radius = 670 - 20 * (100 / 20); //self.angle = (self.angle || 0) + self.orbitSpeed; self.angle = (self.angle || 0) + speed; self.angle %= Math.PI * 2; self.x = moonSurface.x + self.radius * Math.cos(self.angle); self.y = moonSurface.y + self.radius * Math.sin(self.angle); self.rotation = self.angle + Math.PI / 2 + 0.2; self.radius -= 0.075; }; }); // Moon surface class for visual effect var MoonSurface = Container.expand(function () { var self = Container.call(this); var surfaceGraphics = self.attachAsset('moonSurface', { anchorX: 0.5, anchorY: 0.5 // Anchor at the bottom }); self.x = 1024; // Center horizontally self.y = 2732 / 2; // Position at the center of the screen }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 // Init game with black background }); /**** * Game Code ****/ // Initialize important variables and arrays var javelins = []; var background = game.attachAsset('background', { anchorX: 0.5, anchorY: 0.5, x: 974, y: 1366, alpha: 0.5 }); var moonSurface = game.addChild(new MoonSurface()); // Add the astronaut to the scene var astronaut = game.attachAsset('athlete', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 818 }); var javelin = game.addChild(new Javelin()); javelin.x = astronaut.x - 70; javelin.y = astronaut.y; var started = false; var thrown = false; // Create a method to launch a javelin function launchJavelin() { /*var javelin = new Javelin(); javelin.x = 1024; // Launch from center horizontally javelin.y = 2500; // Launch from near the bottom javelin.speedX = Math.random() * 10 - 5; // Random horizontal speed javelin.speedY = -10 - Math.random() * 5; // Upward speed with a little randomness javelins.push(javelin); game.addChild(javelin);*/ javelins.push(javelin); thrown = true; } // Add a text label at the bottom of the screen: "Tap to throw the javelin" var instructionTxt = new Text2('Tap to throw the javelin', { size: 65, fill: "#ffffff" }); instructionTxt.anchor.set(0.5, 3); // Sets anchor to the center of the bottom edge of the text. LK.gui.bottom.addChild(instructionTxt); // Create a score label at the top center of the screen var scoreTxt = new Text2('0', { size: 100, fill: "#ffffff" }); scoreTxt.anchor.set(0.5, 0); // Sets anchor to the center of the top edge of the text. LK.gui.top.addChild(scoreTxt); // Create an action meter at the bottom of the screen var actionMeter = new Container(); var actionMeterGraphics = actionMeter.attachAsset('actionMeter', { anchorX: 0.5, anchorY: 0.5 }); actionMeter.x = 1024; // Center horizontally actionMeter.y = 2732 - 500; // Position at the bottom of the screen actionMeter.alpha = 0; game.addChild(actionMeter); var actionMeterPointer = new Container(); var actionMeterPointerGraphics = actionMeterPointer.attachAsset('actionMeterPointer', { anchorX: 0.5, anchorY: 0.5, scaleX: 4, scaleY: 4 }); actionMeterPointer.x = 1024; // Center horizontally actionMeterPointer.y = 2732 - 450; actionMeterPointer.speed = 30; actionMeterPointer.alpha = 0; game.addChild(actionMeterPointer); var minSpeed = 0.02; var maxSpeed = 0.045; var speed = 0; // Touch event to launch a javelin game.on('down', function (obj) { if (!started) { started = true; instructionTxt.alpha = 0; actionMeter.alpha = 1; actionMeterPointer.alpha = 1; } else if (!thrown) { speed = minSpeed + (actionMeterPointer.x - 450) / 1150 * (maxSpeed - minSpeed); //speed = maxSpeed - speed; console.log('speed ' + speed); launchJavelin(); } else {} }); // Game tick event LK.on('tick', function () { if (started && !thrown) { actionMeterPointer.x += actionMeterPointer.speed; if (actionMeterPointer.x > 1600 || actionMeterPointer.x < 450) { actionMeterPointer.speed *= -1; } } if (thrown) { for (var i = javelins.length - 1; i >= 0; i--) { javelins[i].move(); // Remove javelins that have fallen off the screen if (javelins[i].y > 2732) { javelins[i].destroy(); javelins.splice(i, 1); } // Update the score and scorelabel text every frame when thrown is true. LK.setScore(LK.getScore() + 1); scoreTxt.setText(LK.getScore()); } } }); // Note: The game automatically handles game over, score, and other UI elements.
===================================================================
--- original.js
+++ change.js
@@ -21,9 +21,8 @@
self.speedX = 0;
self.speedY = 0;
self.scale.x = 0.8;
self.scale.y = 0.8;
- self.gravity = 0.1; // Simulate low gravity on the moon
self.rotation = -0.30;
self.orbitSpeed = 0.045;
self.angle = 4.6;
self.radius = 570; //670 - 20 * (100 / 20);
pixelart. a beautiful moon.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
pixelart a beautiful starry sky seen in empty outer space.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
pixelart. a javelin used for olympic games and athletics. Just the spear itself, horizontally laid out in the image. It should be a slim metal spear, pointy in both ends, and with a grip somewhere off center of the shaft.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
pixelart. a metallic triangular pointer.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
pixelart lettering of the word 'LUNAR' with some blank space around it.
replace inpainted area with transparency.
pixelart. asteroid with craters. subtle shading.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
pixelart. asteroid with craters. subtle shading.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A small light yellow star.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
delete the inpainted areas.
Pixelart. A background window for an in-game shop, with a space theme. The center part should be a large blank area with space for the items and labels for sale in the game shop. The blank space could have the form of a black computer screen inside a spaceship.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Pixelart. An icon of a an arm holding javelin with fire around it.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Turn in-painted area solid blue like the area around it.
Pixelart. A rectangular silvery button with the text 'CLOSE'.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.