JavaScript [Canvas - collision]
хочу, чтобы обрабатывались столкновения, но че-то функция неправильно работает - при столкновении уже дальше не идет... допишите пожалуйста
http://jsfiddle.net/3c4093p4/ |
19 просмотров.. и никто не знает как это сделать???
|
Знают конечно же.
|
Цитата:
|
я сейчас не особо трезв , но точно могу сказать что у тебя проблема здесь
function check(){ if( player.x + player.width >= block.x && player.x <= block.x + block.width && player.y + player.height >= block.y && player.y <= block.y + block.height){ return false; // постав здесь true и стены не будет ))) } return true; } когда у блока происходит столкновения то он после этого всегда возвращает false , тебе нужно сначала в проверке додавать и отнимать и если возвращаеться true тогда перемещать блок. |
accept,решения:
1) [самое примитивное] решение увеличить шаг в верх методом подбора 2) когда расстояние до блока <= шагу то при нажатие в сторону блока квадрат прилипает к нужно стороне блока ( так как если изменить шаг то будет так http://jsfiddle.net/3c4093p4/1/ ), что бы не было проблемы с колизиями на углах с верху или низу, варианты: 1) представить весь canvas как сетку, и тогда шаг квалрата будет равен к примеру одна клеточка, а конечный блок 3 клетки и тогда не будет проблема. 2) проверять если 95% квадрата находятся выше/ниже блока то смещать на не достающее растояние в верх/низ + в нужную сторону ваша функция фигня:D |
Часовой пояс GMT +3, время: 01:35. |