@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;
  • Вопрос задан
  • 237 просмотров
Пригласить эксперта
Ответы на вопрос 1
  1. научитесь вежливо общаться с коллегами: форматировать свой код и предлагать его в читаемом виде, а лучше — приводить работающий самодостаточный пример на jsFiddle или CodePen
  2. прочитайте про метод requestAnimationFrame() – что передаётся в него аргументом – это понадобится для реалистичной плавности на всех устройствах от быстрого компа до слабого телефона
  3. вспомните физику: ускорение свободного падения
  4. для плавности при резких изменениях координат (подпрыгивании) можно использовать цепочку преследования
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы