User prompt
Increase ball speed every 20 points
User prompt
make the balls faster every 50 points
User prompt
make the wall the backround
User prompt
make the wall bigger
User prompt
make the wall bigger
User prompt
add a orange wall in the middle of the field
User prompt
make a sound for when the ball hits the bat
User prompt
Add green backround
User prompt
Make the balls faster
User prompt
When ball gets hit launch ball to top of screen
User prompt
when ball gets touched add a hitting effect
User prompt
Only throw one ball
Initial prompt
Home run Hitters
/****
* Classes
****/
//<Assets used in the game will automatically appear here>
//<Write imports for supported plugins here>
// Ball class
var Ball = Container.expand(function () {
var self = Container.call(this);
var ballGraphics = self.attachAsset('ball', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 10; // Increase the speed of the ball
self.update = function () {
self.y += self.speed;
};
});
// Bat class
var Bat = Container.expand(function () {
var self = Container.call(this);
var batGraphics = self.attachAsset('bat', {
anchorX: 0.5,
anchorY: 0.5
});
self.down = function (x, y, obj) {
self.x = x;
self.y = y;
};
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x008000 //Init game with green background
});
/****
* Game Code
****/
// Create and position the orange wall as the background
var orangeWall = LK.getAsset('orangeWall', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 20,
// Scale to cover the entire background
scaleY: 20,
// Scale to cover the entire background
x: 2048 / 2,
y: 2732 / 2
});
game.addChild(orangeWall);
// Initialize variables
var balls = [];
var bat = game.addChild(new Bat());
bat.x = 2048 / 2;
bat.y = 2500;
var score = 0;
var misses = 0;
var pitchInterval = 1000;
var ballThrown = false; // New variable to control if a ball has been thrown
// Score text
var scoreTxt = new Text2('Score: 0', {
size: 100,
fill: 0xFFFFFF
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
// Misses text
var missesTxt = new Text2('Misses: 0', {
size: 100,
fill: 0xFFFFFF
});
missesTxt.anchor.set(0.5, 0);
LK.gui.topRight.addChild(missesTxt);
// Function to pitch a new ball
function pitchBall() {
if (!ballThrown) {
// Only throw a ball if one hasn't been thrown yet
var newBall = new Ball();
newBall.x = Math.random() * 2048;
newBall.y = 0;
balls.push(newBall);
game.addChild(newBall);
ballThrown = true; // Update the ballThrown variable to true
}
}
// Game update function
game.update = function () {
for (var i = balls.length - 1; i >= 0; i--) {
var ball = balls[i];
if (ball.y > 2732) {
ball.destroy();
balls.splice(i, 1);
misses++;
missesTxt.setText('Misses: ' + misses);
ballThrown = false; // Update the ballThrown variable to false
if (misses >= 3) {
LK.showGameOver();
}
} else if (ball.intersects(bat)) {
// Play hit sound
LK.getSound('Hit').play();
// Add hitting effect
LK.effects.flashObject(bat, 0xffff00, 500); // Flash bat yellow for 500ms
// Launch ball to top of screen
ball.speed = -10; // Set speed to negative to move upwards
ball.update = function () {
this.y += this.speed;
if (this.y < 0) {
this.destroy();
balls.splice(i, 1);
ballThrown = false; // Update the ballThrown variable to false
}
};
score += 4;
scoreTxt.setText('Score: ' + score);
pitchInterval = Math.max(500, 1000 - score * 10);
// Increase ball speed every 20 points
if (score % 20 === 0) {
balls.forEach(function (ball) {
ball.speed += 2; // Increase speed by 2
});
}
}
}
};
// Pitch balls at intervals
var pitchTimer = LK.setInterval(pitchBall, pitchInterval);
// Handle bat movement
game.down = function (x, y, obj) {
bat.down(x, y, obj);
}; ===================================================================
--- original.js
+++ change.js
@@ -115,10 +115,10 @@
};
score += 4;
scoreTxt.setText('Score: ' + score);
pitchInterval = Math.max(500, 1000 - score * 10);
- // Increase ball speed every 50 points
- if (score % 50 === 0) {
+ // Increase ball speed every 20 points
+ if (score % 20 === 0) {
balls.forEach(function (ball) {
ball.speed += 2; // Increase speed by 2
});
}