|
2D-программирование Вопросы, касающиеся двумерного программирования |
10.02.2013, 13:36
|
#1
|
AnyKey`щик
Регистрация: 10.02.2013
Сообщений: 7
Написано 0 полезных сообщений (для 0 пользователей)
|
Помогите, проект пошаговая 2D стратегия (сетка)
Всем привет! Прошу помощи!
Вот так выглядит игровое поле.
Сетка:
А именно каждая ячейка это type, который в себе содержит id-ячейки,x,y - координаты [ к примеру 1;1)(1;2)(1;3) ], tile - id спрайта поверхности (1- песок, 2 - лес, 3 - горы, 4 - вода и т.д.)
К примеру в позиции 3;3 - есть некий юнит, который может ходить по любой поверхности кроме воды... и ход может быть от 1 до 3х ячеек...
Помогите реализовать именно этот момент т.т
PS: я могу реализовать это говно-кодом... но суть в том что если юнит будет окружен вокруг водой в одну ячейку, то он все равно сможет перескачить через нее на сухую поверхность... а мне этого не надо...
Я не прошу, готовый код, но если такой имеется, не буду против.
Пожалуйста, помогите с идеями, может кто сталкивался, очень надо.
|
(Offline)
|
|
10.02.2013, 17:04
|
#2
|
Разработчик
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений (для 36 пользователей)
|
Ответ: Помогите, проект пошаговая 2D стратегия (сетка)
добавляеш в тип информацию о поверхности ячейки. При ходе производишь проверку. Если вода на пути, ход идет только до ближайшей ячейки или если пешка вплотную к воде не ходить.
|
(Offline)
|
|
10.02.2013, 19:44
|
#3
|
AnyKey`щик
Регистрация: 10.02.2013
Сообщений: 7
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Помогите, проект пошаговая 2D стратегия (сетка)
Сообщение от CRASHER
добавляеш в тип информацию о поверхности ячейки. При ходе производишь проверку. Если вода на пути, ход идет только до ближайшей ячейки или если пешка вплотную к воде не ходить.
|
Спасибо что ты "внимательно" прочел мою тему и посторался ответить, но то что ты уже сказал я это сделал, суть в том, что юнит может передвигаться за шаг сразу от 1 до 3х клеток к примеру...
и он может туже воду перескочить...
--------------
я сделал что каждая ячейка теперь имеет значение количество имеющихся еще шагов, и когда я выбераю юнита вокруг него сначало проверяются ячейки и заполняются к примеру "3" т.е. что еще можно сделать 3 шага, как проверить остальные ячейки, так как у меня тип, у меня все путается, т.е. какой тип выбран и т.д. ...
|
(Offline)
|
|
10.02.2013, 19:55
|
#4
|
AnyKey`щик
Регистрация: 10.02.2013
Сообщений: 7
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Помогите, проект пошаговая 2D стратегия (сетка)
вот, тут я сделал что бы некий юнит, не мог ходить по скалам(горам) и по юнитам. как видно на скрине зелеными ячейками подсвечиваются те, на которые можно передвинуться... а вот на те которые я выделил вручную розовым маркером, мне надо как то сделать что бы и эти ячейки проверялись в зависимости не от положения Юнита, а от положения зеленых ячеек. да бы не было такого что бы средний юнит к примеру не мог за один шаг подняться выше ячеек скал, так как через них ходить нельзя... (это вам не конь в шахматах т.т)
помогите, мне нужны идеи как это все сделать, как правильно перебрать типы, что бы найти зеленые ячейки, я могу, а что бы проверить какие ячейки окружают каждую зеленую ячейку, уже получается чушь с типами, так как сбивается их счетчик...
|
(Offline)
|
|
10.02.2013, 20:14
|
#5
|
Дэвелопер
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений (для 2,419 пользователей)
|
Ответ: Помогите, проект пошаговая 2D стратегия (сетка)
Если правильно понял то так:
Обозначаем стартовую ячейку нулевой. Все смежные нулевой ячеки (и проходимые) - первыми. Все смежные и проходимые первым ячейкам - вторые, и т.д. Волновой алгоритм короче, только не полный проход, а до определенного уровня.
|
(Offline)
|
|
10.02.2013, 20:16
|
#6
|
AnyKey`щик
Регистрация: 10.02.2013
Сообщений: 7
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Помогите, проект пошаговая 2D стратегия (сетка)
Сообщение от Den
Если правильно понял то так:
Обозначаем стартовую ячейку нулевой. Все смежные нулевой ячеки (и проходимые) - первыми. Все смежные и проходимые первым ячейкам - вторые, и т.д. Волновой алгоритм короче, только не полный проход, а до определенного уровня.
|
Дада так и есть, были проблемы с просчетом ячеек, сбивался их номер гдето в середине... и все было по кругу, и ничиго не отображалось...
Ура я еле как это сделал *_* по говно-кодил малясь, но за-то все работает как часы
|
(Offline)
|
|
10.02.2013, 20:18
|
#7
|
AnyKey`щик
Регистрация: 10.02.2013
Сообщений: 7
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Помогите, проект пошаговая 2D стратегия (сетка)
Тему можно закрывать!
|
(Offline)
|
|
10.02.2013, 20:19
|
#8
|
Разработчик
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений (для 36 пользователей)
|
Ответ: Помогите, проект пошаговая 2D стратегия (сетка)
Спасибо что ты "внимательно" прочитал мой ответ. Волновой алгоритм знаеш что такое? Поисчи в энете, найдеш сразу гарантирую. Он тебе поможет...
|
(Offline)
|
|
10.02.2013, 20:21
|
#9
|
Разработчик
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений (для 36 пользователей)
|
Ответ: Помогите, проект пошаговая 2D стратегия (сетка)
Shtamp, поговнокодил ты не только у себя в проге))
|
(Offline)
|
|
10.02.2013, 20:30
|
#10
|
AnyKey`щик
Регистрация: 10.02.2013
Сообщений: 7
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Помогите, проект пошаговая 2D стратегия (сетка)
Сообщение от CRASHER
Shtamp, поговнокодил ты не только у себя в проге))
|
есть такое))) волновой алгоритм я знаю что это)) я грю моя проблема была не в этом )
спасибо на том что были рядом
|
(Offline)
|
|
19.02.2013, 00:34
|
#11
|
Нуждающийся
Регистрация: 18.06.2009
Сообщений: 51
Написано одно полезное сообщение
|
Ответ: Помогите, проект пошаговая 2D стратегия (сетка)
Если не трудно, напиши как ты это сделал? Просто в прошлом у меня с этим тоже была проблема.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 16:14.
|