Игра по типу "русской рыбалки"
| |
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) каждый пиксель? Зачем каждый. Имея координаты своего положения всегда можем проверить пиксель по данным координатам и определить по нему характеристику места - глубину, прозрачность воды, скорость течения, наличие корма и другие, которые потребует конкретная задумка игры. И пока не забыл. Каждая рыбина-объект олицетворяет собой стаю. Нет смысла делать стаю "по честному", один экземпляр вполне справится с эмуляцией поведения стаи. Если уж будет такая необходимость, то можно "размножать" "стаю" в непосредственной близости от точки наблюдения.
|
|
| |
|