@Vlad_16_09

Плавный прыжок на js canvas?

Не могу сделать плавный прыжок ,кто знает помогите начинающему gameDev программитсу
let canvas = document.getElementById("canvas");
let ctx = canvas.getContext("2d");



let bg = new Image();
bg.src = "https://st2.depositphotos.com/2172301/10601/v/600/depositphotos_106013420-stock-illustration-seamless-cartoon-landscape-with-mountains.jpg";


let cactus = new Image();
cactus.src ="img/cactus.png";

let dog = new Image();
dog.src = "https://cdn2.iconfinder.com/data/icons/japan-flat-2/340/dog_pet_animal_japanese_shiba_inu_japan-256.png";

let dogX = 100;
let dogY = 250;


let pipe = [];
pipe[0] = {
    x:canvas.width,
    y:270
};


function draw(){
    ctx.drawImage(bg,0,0);
    ctx.drawImage(dog,dogX,dogY,100,100);
    for(let i = 0;i<pipe.length;i++){
        ctx.drawImage(cactus,pipe[i].x,pipe[i].y,80,80);
        pipe[i].x -= speed;


        if(pipe[i].x == 300){
            pipe.push({
                x:canvas.width,
                y:270
            });
        }
    }
    
   
      
    requestAnimationFrame(draw);
    
}

function space(){
    dogY -= 85;

    
}


document.addEventListener("keydown",space);



bg.onload = draw;
  • Вопрос задан
  • 258 просмотров
Пригласить эксперта
Ответы на вопрос 1
  1. научитесь вежливо общаться с коллегами: форматировать свой код и предлагать его в читаемом виде, а лучше — приводить работающий самодостаточный пример на jsFiddle или CodePen
  2. прочитайте про метод requestAnimationFrame() – что передаётся в него аргументом – это понадобится для реалистичной плавности на всех устройствах от быстрого компа до слабого телефона
  3. вспомните физику: ускорение свободного падения
  4. для плавности при резких изменениях координат (подпрыгивании) можно использовать цепочку преследования
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы