Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.03.2010, 16:04   #11
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Есть еще вложения, туда в виде файла залейте, а эту портянку я удалю после.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 06.03.2010, 16:55   #12
Grenade
Пользователь
 
Аватар для Grenade
 
Регистрация: 03.03.2010
Сообщений: 38
По умолчанию

Спасибо, не знал этого раньше. Можете удалять, я понял, как это делать и как делать мой первый вопрос.

Вопрос новый: хочу создать еду объектом TShape, карта у меня 25х25. Еда должна появляться случайным образом (по типу, как числа random'ом). Пока не знаю, как это сделать. Помогите пожалуйста!
Grenade вне форума Ответить с цитированием
Старый 06.03.2010, 17:02   #13
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Определяете случайным образом два числа в интервале от 1 до 25, это и будут координаты точки, где появилась еда. Потом проверяете, пуста ли эта клетка, и если в ней действительно ничего нет, то в этой клетке еда появляется. Можно сделать это в цикле - генерировать случайные координаты до тех пор, пока клетка не будет пустой - тогда в конце концов еда обязательно где-то появится в этом ходу.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 06.03.2010, 17:04   #14
Grenade
Пользователь
 
Аватар для Grenade
 
Регистрация: 03.03.2010
Сообщений: 38
По умолчанию

Уфф.... ну, идея, более-менее понятна, спасибо Вам за неё, но пока что-то меня не слишком тянет с реализацией.....
Grenade вне форума Ответить с цитированием
Старый 06.03.2010, 17:22   #15
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Ну, допустим, что в массиве map 0 - пустая клетка, 1 - стенка, 2 - еда. Толком не разобрался в коде, но вроде у вас сегменты змейки хранятся отдельно от карты. Тогда генерация еды будет примерно такая (паскаль уже плохо помню, поэтому приведу код на C++, но, думаю, будет понятно):
Код:
void GenerateFood() //Функция, читай - "процедура" генерации еды
{
bool Ok = false;
int X, Y;
randomize();
while (!Ok) //Будем пытаться пока не получится
 {
 Ok = false; //Если не будет положительных известий - значит, не получилось
 X = random(25);
 Y = random(25);
 if (map[X][Y] == 0) //Если клетка пустая
  {
  map[X][Y] = 2; //Значит здесь будет еда
  Ok = true; //И можно заканчивать
  }
 }
}
Вот примерно такая самая простая функция. Еще, конечно, надо проверить, нет ли на этой клетке самой змейки, то есть проверить каждый сегмент - не совпадают ли его координаты со случайно сгенеренными (X, Y).
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 06.03.2010, 17:25   #16
Grenade
Пользователь
 
Аватар для Grenade
 
Регистрация: 03.03.2010
Сообщений: 38
По умолчанию

Спасибо большое Вам! Сейчас попробую и напишу позже.
Grenade вне форума Ответить с цитированием
Старый 06.03.2010, 17:46   #17
Grenade
Пользователь
 
Аватар для Grenade
 
Регистрация: 03.03.2010
Сообщений: 38
По умолчанию

Я был бы не против, если бы Вы посмотрели, если Вам не сложно, и оценили то,что у меня пока есть (те квадраты, которые расположены по диагонали - это стенки (пробные), управление змейкой - стрелками, что увеличивать размер змейки нажимайте левую кнопку мыши (это пока также условно):

Змейка.zip
Grenade вне форума Ответить с цитированием
Старый 06.03.2010, 18:27   #18
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Хмм... Стенки в упор не замечает, центр окружности находится в углах ячеек (т.е. есть налетели на стенку, то центр окружности придется на угол стенки) - это так и должно быть все-таки окружности должны быть вписаны в квадраты клеток?
При увеличении длины все сегменты, кроме двух изначальных начинают мигать, а ЦП пожирается в ужасающих масштабах.
АПД. ЦП, кстати, начинает пожираться с самого начала, еще когда змейка неподвижна.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же

Последний раз редактировалось Гром; 06.03.2010 в 18:30.
Гром вне форума Ответить с цитированием
Старый 06.03.2010, 18:41   #19
Grenade
Пользователь
 
Аватар для Grenade
 
Регистрация: 03.03.2010
Сообщений: 38
По умолчанию

В ответ на последнююю часть: К сожелению на Delphi 2010, да и на 7, плохая в этом плане порой графика, начинающая постоянно мигать (в данном случае при рисовании стенки, и при добалении Shape'а к концу змейки). Пока змейка и не должна реагировать на стенку, я этим не занимался.

Цитата:
Сообщение от Гром Посмотреть сообщение
(т.е. есть налетели на стенку, то центр окружности придется на угол стенки)
Это тоже вопрос, хмм... а как лучше? у меня, как видели, ширина и длина - это константы, равные 20.
Grenade вне форума Ответить с цитированием
Старый 06.03.2010, 18:56   #20
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Цитата:
Это тоже вопрос, хмм... а как лучше?
Лучше все-таки чтобы все объекты располагались в клетках. А то если сейчас у вас сегмент змейки расположен сразу в четырех клетках.
Цитата:
плохая в этом плане порой графика, начинающая постоянно мигать
Очень распространенная проблема со стандартным решением. Поищите по форуму по ключевой фразе "двойная буферизация".
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Информация по игре "Змейка" Arions Помощь студентам 9 14.12.2009 17:28
Делаю игру "Tanks" 3D anyx Gamedev - cоздание игр: Unity, OpenGL, DirectX 19 20.09.2009 20:55
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04
Помогите с игрой "Змейка". spamer Общие вопросы Delphi 2 26.12.2008 21:17
Ещё одна игра "Змейка" Simply-Art Софт 17 05.07.2007 04:10