Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.11.2016, 22:25
Новичок на форуме
Отправить личное сообщение для Влад Клыков Посмотреть профиль Найти все сообщения от Влад Клыков
 
Регистрация: 29.11.2016
Сообщений: 4

Простая игра на HTML5
Попробовал написать первую игру на js, до этого писал только обработчики событий на сайтах. Выбрал пакмана. Упрощенную версию написать получилось, она здесь. А вот сделать получше не удается. Застрял на добавлении плавной анимации движений. Может, не стоит использовать несколько таймеров, а сделать главный цикл типа такого:
var mainStack = new Array(20),
  mainLoopId = 0;

for(var i = 0; i < mainStack.length; i++){
  mainStack[i] = [];
}
function mainLoop(){
  mainLoopId = setInterval(function(){
    for(var i = 0; i < mainStack[0].length; i++){
      mainStack[0][i]();
    }
    mainStack.shift();
    mainStack.push([]);
  }, 50);
}

А добавлять функции в этот цикл при помощи
mainStack[5].push(functionName);

Или есть другие хорошие варианты построения такой игры? И прошу замечаний по написанному коду.
Ответить с цитированием
  #2 (permalink)  
Старый 30.11.2016, 16:43
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 458

Влад Клыков, используй requestAnimationFrame и смотри как уровни можно рисовать:
/***********************
' ' - empty
'·' - point
'•' - energy
'#' - obstacle
'$' - special obstacle
'G' - pacman
'Q' - ghost
************************/

var levels = [

/******* level 1 *******/
'·····················' +
'·#·#·#·#·#·#·#·#·#·#·' +
'·•·#·•·#·····#·•·#·•·' +
'·#·#·#·#·#·#·#·#·#·#·' +
'·····················' +
'###·###·#####·###·###' +
'·····················' +
'·####·###·#·###·####·' +
'·#····#       #····#·' +
'···##·  ##$##  ·##···' +
'·###### #QQQ# ######·' +
'···##·  #####  ·##···' +
'·#····#       #····#·' +
'·####·###·#·###·####·' +
'··········G··········' +
'###·###·#####·###·###' +
'·····················' +
'·#·#·#·#·#·#·#·#·#·#·' +
'·•·#·•·#·····#·•·#·•·' + 
'·#·#·#·#·#·#·#·#·#·#·' +
'·····················',

/******* level 2 *******/

];
Ответить с цитированием
  #3 (permalink)  
Старый 30.11.2016, 20:00
Новичок на форуме
Отправить личное сообщение для Влад Клыков Посмотреть профиль Найти все сообщения от Влад Клыков
 
Регистрация: 29.11.2016
Сообщений: 4

Спасибо, я до этого не догадался, и делал намного сложнее. А потом из этого сделать массив с объектами карты?

Последний раз редактировалось Влад Клыков, 30.11.2016 в 20:30.
Ответить с цитированием
  #4 (permalink)  
Старый 01.12.2016, 02:13
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 458

Влад Клыков, да
var currentLevel = initLevel(levels[0]);

function initLevel(levelMap) {
	
	var levelObj = {};

	var index = 0;
	
	for (var x = 0; x < 21; x++) {
		
		for (var y = 0; y < 21; y++) {

			var symbol = levelMap.charAt(index++);
			
			if (!levelObj[symbol]) {
				
				levelObj[symbol] = [];
			}
			
			levelObj[symbol].push([x,y]);
		}
	}
	
	return levelObj;
}
Ответить с цитированием
  #5 (permalink)  
Старый 01.12.2016, 08:54
Аватар для xShift
Профессор
Отправить личное сообщение для xShift Посмотреть профиль Найти все сообщения от xShift
 
Регистрация: 22.11.2016
Сообщений: 212

При нажатии вверх и вниз экран скроллится.
Ответить с цитированием
  #6 (permalink)  
Старый 01.12.2016, 14:07
Новичок на форуме
Отправить личное сообщение для Влад Клыков Посмотреть профиль Найти все сообщения от Влад Клыков
 
Регистрация: 29.11.2016
Сообщений: 4

Да, не продумал это.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Игра на javascript Хан Events/DOM/Window 2 28.10.2016 18:37
HTML5 Geolocation API, вопрос о снятии данных User-Agent (X)HTML/CSS 2 22.02.2013 20:09
Игра на HTML5 ejara Общие вопросы Javascript 24 04.01.2012 10:02
HTML5 в наше время это что? Policeman (X)HTML/CSS 4 06.12.2011 10:27
Когда тэги типа <font> исчезнут? Alex455 (X)HTML/CSS 10 14.06.2011 20:14