Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 05.10.2013, 14:28
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 31  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
AlexCooper у меня к Вам вот какой вопрос, да и вообще ко всем кто сможет ответить - я у Вас в коде не нашёл методов удаления элементов массива, и что мне первое пришло в голову, когда я думал как это сделать, это тоже не удалять или просто нулить элементы. Но если играть два часа, то не получится так, что память уронится?

Старый 05.10.2013, 14:39
ndiezel вне форума Посмотреть профиль Отправить личное сообщение для ndiezel Посетить домашнюю страницу ndiezel Найти все сообщения от ndiezel
  № 32  
Ответить с цитированием
ndiezel
 
Аватар для ndiezel

Регистрация: Mar 2009
Адрес: Из города на Ингуле
Сообщений: 116
Отправить сообщение для ndiezel с помощью ICQ
AlexCooper, спасибо вам за труды. Вы, пока что, один из не многих кто не доказывал мне как просто это сделать, а взял и попробовал сделать сам. (Да-да, это камень в огород некоторых )

Но к сожалению, я почти ничего не понял в вашем коде. Сначала я даже засомневался - на AS3 ли это?..
Попытался разобраться, но видимо, я ещё не так хорошо знаю язык.

Я надеялся что отпишется кто-нибудь кто занимался разработкой именно такой или похожей игры, игра-то популярная, шансы были. Но всё скатилось к обсуждениям в стиле "как я бы это сделал" или "как я считаю это должно работать в теории". А такие обсуждения я считаю безсмыссленными, в силу уже написанного ранее: "Сам был такой же умный, пока не взялся сделать".

Ну и поскольку в обсуждении не было ничего такого, что кардинально бы отличалось от способа, которым сделал я, буду надеяться что движок выдержит все последующие мои "фичи", а если где не выдержит - мне хватит извилин в тыковке, чтоб его допилить)

В общем - буду делать по своему, тем более что пока что - всё работает. А там посмотрим.
Благодарю всех за ответы.

Пы.Сы. К слову, кто хочет посмотреть на игрушку, которая уже потихоньку рождается - пишите в личку, дам доступ к ней на фгл.

Старый 05.10.2013, 14:59
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 33  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
А мне наоборот интересно сам принцип реализации, так как я много ещё чего не знаю, то очень хотел бы получить названия способов реализации. Меня интересует -
1) Стоит ли создавать обьекты заново или же стоит в самом начале создать максимум квадратов, а потом их перекладывать из массива в массив?
2) Как узнавать всб цепочку совпадений цветов? Это обход пути?

Старый 05.10.2013, 15:00
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 34  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Это задача из разряда тестовых заданий при приеме на работу. Так что извините. На камень не откликнусь.
__________________
Кто к нам с чем для чего - тот у нас того от того.

Старый 05.10.2013, 15:12
ndiezel вне форума Посмотреть профиль Отправить личное сообщение для ndiezel Посетить домашнюю страницу ndiezel Найти все сообщения от ndiezel
  № 35  
Ответить с цитированием
ndiezel
 
Аватар для ndiezel

Регистрация: Mar 2009
Адрес: Из города на Ингуле
Сообщений: 116
Отправить сообщение для ndiezel с помощью ICQ
Цитата:
1) Стоит ли создавать обьекты заново или же стоит в самом начале создать максимум квадратов, а потом их перекладывать из массива в массив?
Объекты (мувиклипы) должны быть в библиотеке, а вы из неё должны будете их размещать на полотно столько, сколько вам нужно.
Если игра не закончилась и в последующем будут новые объекты, то обычно "отработавшие" объекты не удаляют, а скрывают.
Лично я перемещал "отработанные объекты" в отдельный массив и если мне нужен был "новый" объект - выдёргивал мувик из вот этого, массива отработавших объектов. Задавал ему нужные параметры, размещал там, где мне нужно, удалял из отработанного массива и размещал в новый, с рабочими мувиками.
Это позволяло снижать нагрузку на процессор, когда мувиков оказывалось много.

Код AS3:
Как узнавать всб цепочку совпадений цветов? Это обход пути?
Я сделал простым перебором от кликнутого мувика и по сторонам остальных мувиков. В мувике - переменная с цветом. Совпадают - найден, ищу уже от этого тоже.
Вот функция:
Код AS3:
		private var findedPause:int;
		private function findBrothers(line:int, column:int):void
		{
			blocks[line][column].findedBrother = true;
			//Ищем слева
			if (blocks[line][column - 1].blockType != "blank" && ! blocks[line][column - 1].findedBrother)
			{
				if (blocks[line][column].blockType == blocks[line][column - 1].blockType)
				{
					findBrothers(line,column-1);
				}
			}
			//Ищем справа
			if (blocks[line][column + 1].blockType != "blank" && ! blocks[line][column + 1].findedBrother)
			{
				if (blocks[line][column].blockType == blocks[line][column + 1].blockType)
				{
					findBrothers(line,column+1);
				}
			}
			//Ищем сверху
			if (blocks[line - 1][column].blockType != "blank" && ! blocks[line - 1][column].findedBrother)
			{
				if (blocks[line][column].blockType == blocks[line - 1][column].blockType)
				{
					findBrothers(line-1,column);
				}
			}
			//Ищем снизу
			if (blocks[line + 1][column].blockType != "blank" && ! blocks[line + 1][column].findedBrother)
			{
				if (blocks[line][column].blockType == blocks[line + 1][column].blockType)
				{
					findBrothers(line+1,column);
				}
			}
 
			findedPause = 10;
			clicksNotAviable();
			removeBlock(line,column);
			createBlock(line,column,0);
		}

Цитата:
Сообщение от Dukobpa3 Посмотреть сообщение
Так что извините. На камень не откликнусь.
Извините, но уже. Пусть и таким странным образом.

Старый 05.10.2013, 15:31
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 36  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Я в данной теме обсервер Хоть направление уже ближе к верному избрали))))
__________________
Кто к нам с чем для чего - тот у нас того от того.

Старый 05.10.2013, 18:50
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 37  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
А если уйти от слов "тестовых заданий" и представить, что знания одного кода мало, нужен ещё опыт, которого лично у меня нет и скоро не предвидится. То как должна быть построена сама игра?
То есть не логика, а механизм игры? Ряды кубиков, это отдельные массивы? Если это все один массив, то как он двигает только часть его? Ведь когда между рядами пробелы, то ряды за пробелами не двигаются.
Может тут есть сетка, которая каждый ход обновляет данные о своем состоянии?)

Старый 05.10.2013, 18:56
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 38  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Я бы во-первых рекомендовал мвц.
Все изменения производить с двумерным массивом интовых кодов в модели.
Далее уже думать как рисовать вью. И вот тут уже однозначного ответа дать не могу. Тут уже хоть бокс2д может по этому массиву рисоваться с физ-эффектами. Могуть быть партиклы, может быть плавное переекание одного кубика в другой как лава или кисель. От этого всего очень сильно может отличаться реализация вьюхи.

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

Если берем за основу пример по ссылке - то тут один из самых простых вариантов - во вью тоже двумерный массив. Т.е. и во вью и в модели два идентичных массива данных, но в модели просто код цвета, а во вью уже мувики.
Далее просто остается научить каждый мувик в массиве вью научить удаляться и двигаться и всё. (Добавляться они все будут стандартно и по целому столбцу слева, это другой механизм, это уже в каждый кубик пихать не стоит)
__________________
Кто к нам с чем для чего - тот у нас того от того.

Старый 05.10.2013, 19:26
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 39  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Цитата:
Все изменения производить с двумерным массивом интовых кодов в модели.
А какими свойствами должен обладать элемент этого массива?

Старый 05.10.2013, 23:26
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 40  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Написал же выше.
Цитата:
массивом интовых кодов
Никакими.
Можно:
Код AS3:
Vector.<Vector.<int>>
Добавлено через 1 минуту
Хотя я бы использовал битмапдату как массив.
И брал бы один элемент массива как один пиксель и по цвету бы уже смотрел. Но это уже высокая материя.
(примерно так)
__________________
Кто к нам с чем для чего - тот у нас того от того.

Создать новую тему Ответ Часовой пояс GMT +4, время: 06:44.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 06:44.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.