Четверг, 28 Марта 2024, 12:42

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Программирование » Delphi/Pascal/Object Pascal » Игра по типу "русской рыбалки"
Игра по типу "русской рыбалки"
andry1333Дата: Понедельник, 03 Сентября 2012, 05:33 | Сообщение # 1
уже был
Сейчас нет на сайте
подскажите, как реализовать алгоритм поклевки на определенную приманку, и движение рыбы на локации(рыбы не визуальные, нужны лишь для реализации). вот пример - есть рыба, карась, она клюет лучше на червя (60%), чем на хлеб(10%), на кукурудзу (4%), на манку (10%) , мин вес - 10 гр, макс 4 кг. как всё это передавать?

думал, может массив хранить , с наживками, когда пользователь переключается на другую наживку, то работаем с другим индексом массива, который хранит инфу об выбранной наживке? а если рыб много?

Пример игры - http://rus-fishsoft.ru

Так же готов работать с другими людьми, кто заинтересован в данном проекте.


Сообщение отредактировал andry1333 - Понедельник, 03 Сентября 2012, 05:36
ModelkinДата: Понедельник, 03 Сентября 2012, 09:05 | Сообщение # 2
почетный гость
Сейчас нет на сайте
Делаем функцию считывающую изображение с четырьмя каналами. Это будет массивом водоема. На изображении одним цветом рисуем глубину и отмели, другим цветом рисуем водоросли и заросли, третьим - места кормежки и т.д., если четыре канала мало - можно сделать несколько карт. Теперь мы можем просто в графическом редакторе управлять водоемом и поведением рыб.
Дальше, пишем класс "Fish" в котором опишем свойства и поведение всех рыб. На первых порах можно разницу видов рыб делать, реализуя класс и меняя настройки в экземпляре. Впоследствии лучше унаследовать класс "Fish", сначала для хищных и растительноядных, а потом от них и весь спектр видов.
Если опыта в программировании мало, то сложное поведение экземпляров и стай рыб лучше пока не делать. Сделать просто несколько основных и дополнительных маршрутов рыбы по водоему и факторы влияющие на смену маршрутов. Факторы - время суток, время года, фазы луны, сытость, шум, наличие хищников, кормежкопригодность места и т.д.
Пишем класс рыбака и инвентарь.
Пишем стартовый код, в котором считываем настройки, геймсохранения, карту водоема, создаем стаи рыб, рыбака и другие объекты. В конце стартового кода запускаем игровой цикл.
Пишем игровой цикл.
andry1333Дата: Понедельник, 03 Сентября 2012, 15:19 | Сообщение # 3
уже был
Сейчас нет на сайте
да с рыбой понятно. а вот с функцией не совсем. считывать определенный цвет, и записывать в файл, который сохранять рядом с локацией, а потом уже при игре читать значения это, и сверять со значением в массиве? и как узнавать, куда пользователь забросил снасть? координаты получить можно. но как потом их "обработать"? сверять их каждый раз с значениями в массиве, каждый пиксель? и передвижение рыб как сделать

Сообщение отредактировал andry1333 - Понедельник, 03 Сентября 2012, 15:33
ModelkinДата: Вторник, 04 Сентября 2012, 18:16 | Сообщение # 4
почетный гость
Сейчас нет на сайте
Еще знать бы задачу поподробнее. А то получится, что говорим о разных вещах. Даже не известно будет ли рыбак передвигаться вдоль берега или на лодке. Если он будет сидеть на месте, то может и смысла нет вырисовывать маршруты и по другому изгаляться, а можно просто генерировать поклевки.

Quote (andry1333)
передвижение рыб как сделать

Ну, а как делаются передвижения игровых объектов по сложным кривым? Из главного игрового цикла через одинаковые (если надо, то не совсем одинаковые) промежутки времени вызываем функцию-член нужного объекта. А функция рассчитывает новое положение своего объекта ориентируясь на длительность промежутка времени и заданную кривую. И записывает свои новые координаты в переменную, член этого же объекта.

Геометрические кривые, кривая Безье - это набор точек, описывается целиком математически. Зная исходную точку, направление и скорость - мы всегда можем получить точные координаты расположения объекта через любой заданный промежуток времени. Можно, конечно, использовать простую последовательность точек, но кривые Безье - это правильней.

Quote (andry1333)
каждый пиксель?

Зачем каждый. Имея координаты своего положения всегда можем проверить пиксель по данным координатам и определить по нему характеристику места - глубину, прозрачность воды, скорость течения, наличие корма и другие, которые потребует конкретная задумка игры.
И пока не забыл. Каждая рыбина-объект олицетворяет собой стаю. Нет смысла делать стаю "по честному", один экземпляр вполне справится с эмуляцией поведения стаи. Если уж будет такая необходимость, то можно "размножать" "стаю" в непосредственной близости от точки наблюдения.
Форум игроделов » Программирование » Delphi/Pascal/Object Pascal » Игра по типу "русской рыбалки"
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг