Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Canvas [Столкновение] (https://javascript.ru/forum/misc/53251-canvas-%5Bstolknovenie%5D.html)

accept 26.01.2015 22:13

Canvas [Столкновение]
 
я извиняюсь, что так часто создаю темы, но, иначе никак( начал писать игры на канвасе, и, вот что-то не получается
вот маленькая игра - http://jsfiddle.net/qwc8yrk5/
нужно рассчитать столкновения со стенами, целый день сижу, и нифига не получается(( помогитееее

caetus 26.01.2015 22:28

Графика на JavaScript — Рафаэлло Чекко
там есть все что тебе нужно =)))

Кента 15.06.2018 21:57

Код проверки столкновения
 
function collides(player1, player2) {
var hit = !(player1.position[0] + player1.width < player2.position[0] ||
player2.position[0] + player2.width < player1.position[0] ||
player1.position[1] + player1.height < player2.position[1] ||
player2.position[1] + player2.height < player1.position[1]);

if(hit) {
return true;
} else {
return false;
}
}


Где player1, там первый объект, где player2- второй объект.
Если два объекта столкнулись, тогда возвратится значение "true".

Вот например:
if(collides(player, block)) {
console.log("!!!");
}


НО!
Оба этих объекта должны выглядеть примерно так:
{
width: 100,
height: 100,

position: [
100,
100
]
}

Т.е. иметь width, height и массив position с координатами.

Этот код можно засунуть в таймер (вечный цикл), чтобы ПОСТОЯННО, когда персонаж касался блока выводилось сообщение:

setInterval(function() {
if(collides(player, block)) {
console.log("!!!");
}
}, 0);


Но, как останавливать персонажа при соприкосновении с блоком я ещё не знаю, вот сейчас сижу и думаю...

А пока, это- всё чем я могу помочь, вот сейчас специально авторизовался, чтобы ответить...


Часовой пояс GMT +3, время: 08:01.