User prompt
I mean Hz make it to have very low Hz to make the player (white duck) move
User prompt
Make the other ducks to move more slow
User prompt
Ok perfect. Now I want to make the player (white duck) to move if the sound it hears is very high decibells. Also I want to have in the screen on the above the volume of decibells ↪💡 Consider importing and using the following plugins: @upit/facekit.v1
User prompt
Please make the white duck move only if I speak and not if it hears any sounds. Specifically, it is okay if I don't speak, it does not move, but when the other ducks do a sound it moves. I do not want this ↪💡 Consider importing and using the following plugins: @upit/facekit.v1
User prompt
Please remove the waves below
User prompt
Make the brown ducks to move quicker and make the player (white duck) not to move unless I speak ↪💡 Consider importing and using the following plugins: @upit/facekit.v1
User prompt
Make the player (white duck) not to move if I don't speak ↪💡 Consider importing and using the following plugins: @upit/facekit.v1
Remix started
Copy Duck Race
/****
* Plugins
****/
var facekit = LK.import("@upit/facekit.v1");
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
// Duck class representing the player's duck
var Duck = Container.expand(function () {
var self = Container.call(this);
var duckGraphics = self.attachAsset('duck', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 1; // Initial speed of the duck
self.speedVariation = 0; // Variable to keep track of the speed variation
self.update = function () {
if (countdown == 0) {
// Update the duck's speed using the tween plugin
tween(self, {
speedVariation: Math.random() * 2 - 1
}, {
duration: Math.random() * 1000,
// Random duration for the speed variation
easing: tween.easeInOut
});
self.x += self.speed + self.speedVariation;
}
};
});
// PlayerDuck class representing the player's duck
var PlayerDuck = Container.expand(function () {
var self = Container.call(this);
// Create a playerDuck graphic and assign it to the playerDuck instance
var playerDuckGraphics = self.attachAsset('playerDuck', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 5;
self.update = function () {
if (countdown == 0) {
self.x += facekit.volume * self.speed;
}
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x87CEEB // Light blue background to simulate sky
});
/****
* Game Code
****/
//<Assets used in the game will automatically appear here>
// Initialize game elements
var ducks = [];
var countdown = 3;
var countdownText = new Text2(countdown.toString(), {
size: 150,
fill: 0xFFFFFF
});
countdownText.anchor.set(0.5, 0);
var startX = 100;
LK.gui.center.addChild(countdownText);
for (var i = 0; i < 5; i++) {
var duck = game.addChild(new Duck());
duck.x = startX; // Starting position of the duck
duck.y = 600 + i * 200 + i * 20; // Aligned vertically
ducks.push(duck);
}
var playerDuck = game.addChild(new PlayerDuck());
var finishLine = game.addChild(LK.getAsset('finishLine', {}));
finishLine.x = 2048 - finishLine.width - 50;
finishLine.y = 0;
// Create multiple wave instances and position them at the bottom of the screen
var waves = [];
for (var i = 0; i < 5; i++) {
var wave = game.addChild(LK.getAsset('wave', {}));
wave.x = i * wave.width;
wave.y = 2732 - wave.height;
waves.push(wave);
}
var lastDuck = ducks[ducks.length - 1];
playerDuck.y = lastDuck.y + lastDuck.height + 100;
playerDuck.x = startX;
var score = 0;
// Update function called every frame
game.update = function () {
if (countdown > 0 && LK.ticks % 60 == 0) {
countdown--;
countdownText.setText(countdown.toString());
if (countdown == 0) {
LK.gui.center.removeChild(countdownText);
// Reset the duck's speed variation
for (var j = 0; j < ducks.length; j++) {
var duck = ducks[j];
duck.speedVariation = 0;
}
}
}
if (playerDuck.x > finishLine.x) {
LK.showYouWin();
return;
}
// Make the waves move up and down in a wave movement
for (var i = 0; i < waves.length; i++) {
waves[i].y += Math.sin((LK.ticks + i * 10) / 60) * 5;
}
if (LK.ticks % Math.floor(Math.random() * 60 + 60) == 0) {
LK.getSound('quack').play();
}
for (var j = 0; j < ducks.length; j++) {
var duck = ducks[j];
duck.update();
// Check if duck has reached the end of the track
if (duck.x > finishLine.x) {
LK.showGameOver();
}
}
};