Показать сообщение отдельно
Старый 03.10.2013, 19:16
ndiezel вне форума Посмотреть профиль Отправить личное сообщение для ndiezel Посетить домашнюю страницу ndiezel Найти все сообщения от ndiezel
  № 1  
Ответить с цитированием
ndiezel
 
Аватар для ndiezel

Регистрация: Mar 2009
Адрес: Из города на Ингуле
Сообщений: 116
Отправить сообщение для ndiezel с помощью ICQ
По умолчанию Движок для игры "линии"

Всем привет.

Делаю сейчас игру, по типу "линий". Это когда собираешь три или больше кубика одного цвета в ряд - они исчезают. Ну, типа такой игры.
И вот, собственно, у меня вопрос - как лучше всего сделать движок для этой игры? Учитывая что новые блоки могут появляться с разных сторон и соответственно - будут двигать ряды или столбцы. Все или выборочно.
Я, поначалу, думал что легко сделаю эту игру, но как взялся за реализацию, понял что не всё тут просто.

Я сделал так. Создаю стартовый массив:
Код AS3:
private var blocks:Array =
		[
		 ["blank","blank","blank","blank","blank","blank","blank","blank","blank","blank","blank","blank","blank"],
		 ["blank","blank","blank","blank","blank","blank","blank","blank","blank","blank","blank","blank","blank"],
		 ["blank","blank","blank","blank","blank","blank","blank","blank","blank","blank","startingPosition","blank","blank"],
		 ["blank","blank","blank","blank","blank","blank","blank","blank","startingPosition","startingPosition","startingPosition","blank","blank"],
		 ["blank","blank","blank","blank","blank","blank","blank","startingPosition","startingPosition","startingPosition","startingPosition","blank","blank"],
		 ["blank","blank","blank","blank","blank","blank","startingPosition","startingPosition","startingPosition","startingPosition","startingPosition","blank","blank"],
		 ["blank","blank","blank","blank","blank","startingPosition","startingPosition","startingPosition","startingPosition","startingPosition","startingPosition","blank","blank"],
		 ["blank","blank","blank","blank","startingPosition","startingPosition","startingPosition","startingPosition","startingPosition","startingPosition","startingPosition","blank","blank"],
		 ["blank","blank","blank","blank","blank","blank","blank","blank","blank","blank","blank","blank"]
		];
Заполняю на его основе экран блоками, запускаю саму игру:
Код AS3:
private function placeBlocksOnLevel():void
		{
			addChild(blocksSloi);
			for (var line:int=8; line>-1; line--)
			{
				for (var column:int = 12; column>-1; column--)
				{
					var bv:int = 0;
					if (blocks[line][column] == "startingPosition")
					{
						bv = 1 + Math.random() * 7;
					}
					createBlock(line,column,bv);
				}
			}
 
			addEventListener(Event.ENTER_FRAME,MainEnterFrame);
		}
Ну и дальше там уже перемещаю их, удаляю и т.д.
Подскажите, может есть более простые способы реализации подобной игры? Чтоб можно было легко отслеживать положение блока на экране и не терять его связь с данными в массиве?
Ато что-то мне кажется что что-то я намудрил... Сложная какая-то конструкция получается.