![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 20.04.2008
Сообщений: 18
|
![]()
Здравствуйте, нужно написать примитивную игрушку - "змейку":
Человечек бегает по полю, собирает монетки, препядствия - деревья, а за ним гоняется змейка. Сама змея управляется компьютером, человечек - с клавиатуры. Движение змейки, управление человечком, интерфейс - написала...Возникла проблемма в том как определить, что человечек "взял монетку"(она желтого цвета). Мне нужно посчитать сколько он их "съел". Ну и когда змейка словила человечка..? ![]() |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 16.06.2008
Сообщений: 39
|
![]()
Представь поле как матрицу, т.е. двойной масив m[i][j]. Присвой каждой пустой клеточки масива, где нет монеток, значение ноль, где монетки, значение один, человечек перемещается по этим ячейкам матрицы и если он забрёл на ячейку со значением 1, то присваем этой ячейки значение 0, а игроку добавляем одну монетку в капилку. Всё очень просто!!!
Проверять цвета, здесь не рационально. Ещё сделай для игрока положение в текущей ячейки, не разбивай количество положений на большое число, достаточно чтобы оно было меньше одного пикселя на экране, тогда анимация будет плавной. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 16.06.2008
Сообщений: 39
|
![]()
Препятсвиям деревья, соответсвенно присвоить значение 2 в вашей матреце. итд.
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 20.04.2008
Сообщений: 18
|
![]()
Может данный вопрос будет и глупым, но... я так понимаю, что матрицу разбивать по координатам игрового поля. Н-р: с 1 по 15 пикселей - 1-я ячейка и т.д. У меня положения монеток и деревьев генерируются изначально. Таким образом сначала нужно сделать разделение матрицы, а потом уже конкретно распределить предметы по ячейкам или как?
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 16.06.2008
Сообщений: 39
|
![]()
ДА, имено так
var m: array[0..100, 0..100] of integer; m[10,10] := 2;//теперь в ячейки с координатами 10, 10, у вас будет стоять дерево Когда рендерите сцену, т.е. отображаете всё её содержимое на экран, то проверяете каждую ячейку матрицы, и если например значение равно 2, то рисуете дерево. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вот навоял: Определение цвета пикселя на DeskTop'e | Comer_Jus | Софт | 3 | 21.05.2008 16:20 |
Динамическое создание объекта | ANGa | Помощь студентам | 3 | 10.04.2008 18:14 |
Свойства объекта | KBak | Win Api | 5 | 15.08.2007 20:21 |
Определение цвета пикселя | Artem | Общие вопросы Delphi | 8 | 13.07.2007 14:33 |
Определение цвета и размера заголовков окон | VDLab | Win Api | 2 | 28.12.2006 17:24 |