Estoy tratando de hacer que mi gif "salte", mientras que también vuelvo a descansar con un valor ay de 730. Ni más ni menos. Funcionaría en la misma medida que el juego Dinosaurio, cuando no hay wifi. También me gustaría incluir una función de gravedad. No estoy seguro de cómo hacer eso. (Soy MUY nuevo en la codificación.) ¿Algún consejo?
[El código está debajo]
let img; //background var bgImg; //also the background var x1 = 0; var x2; var scrollSpeed = 4; //how fast background is let bing; //for music let cat = { //coordinates for catbus x:70, y:730 } var mode; //determines whether the game has started function preload() { bgImg = loadImage("backgwound.png"); //importing background bing=loadSound('catbus theme song.mp3'); //importing music } function setup() { createCanvas(1000, 1000); //canvas size img = loadImage("backgwound.png"); //background in x2 = width; bing.loop() //loops the music catGif=createImg("catgif.gif") //creates catbus catGif. position(cat.x, cat.y) //creates position catGif. size(270,100) //creates how big mode = 0; //game start textSize(50); //text size } function draw() { let time = frameCount; //start background loop image(img, 0 - time, 0); image(bgImg, x1, 2, width, height); image(bgImg, x2, 2, width, height); x1 -= scrollSpeed; x2 -= scrollSpeed; if (x1 <= -width) { x1 = width; } if (x2 <= -width) { x2 = width; } //end background loop fill("white") //text colour if(mode==0){ text('Press SPACE to start the game.',150,500); //what text to type } if(mode==0){ text('CATBUS BIZZARE ADVENTURE',135,450) //what text to type } } function pickRandom() { x = random(20, width - 20); }Actualicé su boceto p5.js para orientarlo en la dirección correcta.
He introducido algunas variables que se definen en la parte superior de su código antes de la configuración:
let gravity = 0.1; let velocity = 0; let upForce = 3; let startY = 730; let startX = 70; ... Puede modificar estos números para que se ajusten a su juego. Pero la premisa básica aquí es que a cada cuadro le sumamos la velocidad al cat.y y la velocity se incrementa en cada cuadro por la gravity :
cat.y = cat.y + velocity; velocity = velocity + gravity; Sin embargo, hay una advertencia, no queremos agregar la velocidad a cat.y si el gato está en startY , ya que startY es la hierba:
if (cat.y > startY) { velocity = 0; cat.y = startY; } catGif.position(cat.x, cat.y); // reposition the gifY por último, cuando pulses la barra espaciadora, ¡salta! (Y deshacerse de la pantalla de inicio)
function keyPressed() { if (keyCode === 32) { //spacebar mode = 1; velocity -= upForce; } }