Моя фигура либо падает через пол, либо исчезает. Мой код достаточно прост, и если вы копируете и вставляете, вы сможете видеть все. Во всяком случае, слышится код. Я думаю, что я, вероятно, ничего не добавил к столкновению, находящемуся в функции галочки.проблемы с столкновением с EaselJS
var box, gravity, stage;
stage = new createjs.Stage(document.getElementById('canvas'));
gravity = 10;
// this function is called onload in the body tag
function init(){
box = new createjs.Shape();
box.graphics.beginFill('blue').drawRect(0,0,50,50);
stage.addChild(box);
box.x = 50;
box.y = 50;
game();
}
function game(){
window.addEventListener('keydown', keydownHandler);
createjs.Ticker.addEventListener('tick', tick);
var floor;
floor = new createjs.Shape();
floor.graphics.beginFill('red').drawRect(0, 0, 500, 20);
floor.x = 0;
floor.y = 480;
stage.addChild(floor);
function keydownHandler(e){
if(e.keyCode === 65 || e.keyCode === 37){
box.x -=5;
stage.update();
console.log(box.x);
} else if(e.keyCode === 68 || e.keyCode === 39){
box.x += 5;
stage.update();
console.log(box.x);
} else if(e.keyCode === 87 || e.keyCode === 38){
var lBox;
box.y -= 50;
lBox = new createjs.Shape();
lBox.graphics.beginFill('blue').drawRect(box.x - 16, box.y + 50, 16, 15);
stage.addChild(lBox);
stage.update();
console.log(box.y);
}
}
function tick(){
console.log(box.y);
console.log(floor.y);
box.y += gravity;
var collision;
collision = floor.y;
// Here is the problem right here!
if(box.y + 45 >= collision){
box.y = floor.y;
}
stage.update();
}
}
I also think I use stage update too much, so if there is a SIMPLE way, because I'm new please feel free to demonstrate that as well.thanks in advance.
много спасибо Lanny !!! быстро следить, если у вас есть время. теперь, когда пол работает, я должен создать массив платформ для создания уровней напольных объектов или же более прагматичный способ загрузить уровень и заставить их столкнуться? –
Да, отслеживание массива или коллекции платформ будет работать. Это может стать дорогим, если у вас слишком много. Если вы хотите построить платформер, возможно, посмотрите Box2D - в CreateJS GitHub есть образец. https://github.com/CreateJS/sandbox/tree/master/EaselJS_Box2dWeb – Lanny