Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   HTML5 Arcanoid (https://javascript.ru/forum/project/14325-html5-arcanoid.html)

Awilum 11.01.2011 15:08

HTML5 Arcanoid
 
Делаю арканоид на HTML5
Помогите протестить пожалуйста и хотелось бы услышать замечания и советы по
геймплею, физике и особенно коллизии.

http://awilum.webdevart.ru/games/arcanoid/arcanoid.html

Shaci 11.01.2011 15:25

прикольно

Awilum 11.01.2011 15:31

просьба тестивших написать браузер и версию

Maxman 11.01.2011 15:40

ФФ 3.6 всё нормально) тока када гейм овер, я бы ещё добавил кнопку рестарта, а то F5 как-то не круто жать

ASerputko 11.01.2011 15:47

смотрел только что в хроме 8.0,
1) Игра стартует сразу. сделай что ли что бы старт начинался при первом клике. А то первая попытка всегда проигрыш =)
2) когда в черный квадрат шарик залетает [2]. то он проходит сквозь все черные квадратики, хотя должен был удариться, снизить квадрат на единицу [1] и вернуться назад. думаю автор понял что я имел введу.

Skipp 11.01.2011 15:48

ФФ 3.6
сразу стартует, это не есть гуд! Сделай таймер в начале, после смертей и при смене уровня.

Aetae 11.01.2011 16:12

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

monolithed 11.01.2011 16:51

плохо что нет управления клавишами, т.к. мышью вообще не удобно, а в целом нормально

Vulkan 11.01.2011 17:06

Opera 11, всё работает, только нужна задержка вначале или старт по клику

Awilum 11.01.2011 19:01

спасибо всем за отзывы и замечания :)
я тут основу переписываю и хочу клаву добавить. Вот так я это сделал

input.js

// Mouse input
	var mouseX = 0;
	var mouseY = 0;
	var mouseClickX = 0;
	var mouseClickY = 0;
	
	// Keyboard input
	var keys = 0;
	var KEY_LEFT  = false;
	var KEY_RIGHT = false;
	var KEY_UP    = false;
	var KEY_DOWN  = false;	
	var KEY_W 	  = false;
	var KEY_A  	  = false;
	var KEY_S 	  = false;
	var KEY_D     = false;
	
	
	function mouseMove(event) {
		mouseX = event.clientX - canvas.offsetLeft;    
		mouseY = event.clientY - canvas.offsetTop;    
	}

	function mouseClick(event) {
		mouseClickX = event.clientX - canvas.offsetLeft;    
		mouseClickY = event.clientY - canvas.offsetTop;    		
	}
	
	function keyboardUpdateStates(event) {				
		key = event.keyCode;		
		if(key == 39) KEY_RIGHT = true; 
		if(key == 37) KEY_LEFT  = true; 
		if(key == 38) KEY_DOWN  = true; 
		if(key == 40) KEY_UP    = true; 

		if(key == 65) KEY_A  = true; 
		if(key == 87) KEY_W  = true; 
		if(key == 68) KEY_D  = true; 
		if(key == 83) KEY_S  = true; 
		
		if(ENGINE_DEBUG) console.log(key);
	}
	
	function keyboardClearStates(event) {
		key = event.keyCode;
		KEY_RIGHT = false;
		KEY_LEFT  = false;
		KEY_DOWN  = false; 
		KEY_UP    = false; 
		KEY_W 	  = false;
		KEY_A  	  = false;
		KEY_S 	  = false;
		KEY_D     = false;
	}


и тогда главный файл со сценой выглядит так:

<!DOCTYPE html>
<html>
<head>    
    <script type="text/javascript" src="../../engine/Core.js"></script>
	<script type="text/javascript" src="js/exemple1.js"></script>
</head>
<body onload="geRun()"
	  onkeydown="keyboardUpdateStates(event)"
	  onkeyup="keyboardClearStates(event)"> 
    <canvas id = "canvas"
            width = "640"
            height = "480"
			onmousemove="mouseMove(event)"
			onclick="mouseClick(event)">
    </canvas>
</body>
</html>


мне кажется что отлавливание мыши и клавы я не красиво реализовал. Кто что думает по поводу этого ? Ваши варианты...


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