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>


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

Matre 11.01.2011 22:06

opera 11
управл клавой неработает
в консоли куча ошиьок аля 'canvas is undefined ,cannot convert to object'
проверьте

Awilum 11.01.2011 22:23

Matre
ясно что клава не работает, ее еще нет, програву спросил уже нормальный ли вариант.

У меня в хроме и в ФФ нет ошибок

Vulkan 12.01.2011 11:10

да, ошибок много и она одна, хотя всё работает:
Цитата:

Uncaught exception: TypeError: Cannot convert 'canvas' to object

Error thrown at line 68, column 4 in updateCoordinates(event) in http://awilum.webdevart.ru/games/arc...game_engine.js:
mouseX = event.clientX - canvas.offsetLeft;
called from line 1, column 0 in <anonymous function>(event):
updateCoordinates(event)

Awilum 12.01.2011 15:28

Переписал движок. Теперь это похоже на движок/фрейворк :)
И перенес игрушку с некоторыми изменения. Просьба протестить
arcanoid 0.2

Некоторые простенькие демки движка можно посмотреть тут:
http://awilum.webdevart.ru/hage/demos/demo1.html
http://awilum.webdevart.ru/hage/demos/demo2.html
http://awilum.webdevart.ru/hage/demos/demo3.html

Vulkan 12.01.2011 15:38

Так то норм, только иногда подвисает

Awilum 12.01.2011 15:38

Vulkan
там 100 смайликов.
у меня и на 500 не висло ни сколько

Vulkan 12.01.2011 15:38

Да это заглюк в опере был что-то, перезапустил, всё ок.

Skipp 12.01.2011 15:41

Awilum,
теперь когда мышь уводишь из игрового экрана, то перестаёт двигаться полоска, а шарик так и летает.

Kolyaj 12.01.2011 15:49

Игровой динамики не хватает, всяких бонусов и какашек, падающих из ящиков.


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