Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   JavaScript [Canvas - collision] (https://javascript.ru/forum/misc/53271-javascript-%5Bcanvas-collision%5D.html)

accept 27.01.2015 18:56

JavaScript [Canvas - collision]
 
хочу, чтобы обрабатывались столкновения, но че-то функция неправильно работает - при столкновении уже дальше не идет... допишите пожалуйста
http://jsfiddle.net/3c4093p4/

accept 27.01.2015 20:05

19 просмотров.. и никто не знает как это сделать???

MallSerg 27.01.2015 21:12

Знают конечно же.

accept 27.01.2015 21:17

Цитата:

Сообщение от MallSerg (Сообщение 353773)
Знают конечно же.

и как же?? допишите плиз.. целые 3 часа уже сижу(

caetus 28.01.2015 00:20

я сейчас не особо трезв , но точно могу сказать что у тебя проблема здесь

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 тогда перемещать блок.

cyber 28.01.2015 01:11

accept,решения:
1) [самое примитивное] решение увеличить шаг в верх методом подбора
2) когда расстояние до блока <= шагу то при нажатие в сторону блока квадрат прилипает к нужно стороне блока ( так как если изменить шаг то будет так http://jsfiddle.net/3c4093p4/1/ ), что бы не было проблемы с колизиями на углах с верху или низу, варианты:
1) представить весь canvas как сетку, и тогда шаг квалрата будет равен к примеру одна клеточка, а конечный блок 3 клетки и тогда не будет проблема.

2) проверять если 95% квадрата находятся выше/ниже блока то смещать на не достающее растояние в верх/низ + в нужную сторону


ваша функция фигня:D


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