Отправляет email-рассылки с помощью сервиса Sendsay

За 2014-12-12

[prg] Re[3]: враги в bgt

здравствуйте
я вас не совсем понимаю, мне нужен пример.
ну сделаю я класс, я понимаю что нужен speed и т.д только как это
используется, я уже голову сломал.
что я смог сделать только вот класс который я писал, и игру с
передвижением, вот ее код:
#include "dynamic_menu.bgt"

const int board = 20;
int player_position = 1;
int hp = 20;
sound start;
sound music1;
sound music;
sound shag;

void main()
{
music.load("sounds/music.wav");
music.volume = -30;
music1.load("sounds/music1.wav");
music1.volume = -10;
shag.load("sounds/shag.wav");
shag.volume = 50;
start.load("sounds/start.wav");
start.volume = 30;
tts_voice voice;
dynamic_menu menu;
menu.allow_escape = true;
menu.wrap = true;
menu.add_item_tts("Start game");
menu.add_item_tts("Exit game");
show_game_window("Enemy");
voice.speak_wait("Welcome to Enemy");
music.play_looped();
int choice;
do
{
choice = menu.run("Please choose a menu item with the arrow keys, then
hit enter to activate it.", true);
if(choice==1)
{
music.stop();
game_play();
}
}
while(choice!=0 and choice!=3);
music.stop();
voice.speak_wait("Thanks for playing.");
}

void game_play()
{
start.play_wait();
while(true)
{
music1.play_looped();
if(key_pressed(KEY_LEFT) and player_position>0) {
player_position--;
shag.play();
}
if(key_pressed(KEY_RIGHT) and player_position<20) {
player_position++;
shag.play();
}
if(player_position<0)
{
player_position++;
}
if(player_position>20)
{
player_position--;
}
}
}
и все.

   2014-12-12 20:47:55 (#3181011)

[prg] Re[2]: враги в bgt

> составить список действий, которые этот объект должен выполнять, и список
> свойств, которыми должен обладать.

К этому ещё нужно добавить список состояний, которыми характеризуется
поведение объекта, например, покой, атака, бегство, поиск_цели,
поиск_предмета и т.п. (в соответствии с тем текстовым описанием, которое вы
придумали ранее).
Эти состояния и составят таблицу переходов (состояний) в вашем классе.

   "i_chay" 2014-12-12 06:45:30 (#3180427)

[prg] Re: враги в bgt

Приветствую!

> int hp;
Никогда больше не давайте переменным такие имена (особенно членам класса).

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

Подробности бывают разные. Например, вот так: сначала нужно описать игровой
объект обычным языком в письменном виде. Затем проанализировав этот текст,
составить список действий, которые этот объект должен выполнять, и список
свойств, которыми должен обладать.
На основании этого списка вы проектируете класс: действия станут методами
класса, а свойства объекта -- переменными (свойствами) класса.
Например, для перемещения объекта нужны свойства "позиция" и "скорость", а
также метод "движение", который и должен будет вычислять новую позицию
объекта, исходя из его скорости и прошедшего времени с момента предыдущего
вычисления.
Если это недостаточно подробно, то теорию конечных автоматов, основы
объектно-ориентированного программирования (и проектирования), а также
синтаксис языка сценариев BGT рекомендую изучить самостоятельно (материалов
в сети достаточно). Эти темы непосредственно касаются ответа на ваш вопрос,
если бы этот ответ был максимально подробным.

   "i_chay" 2014-12-12 06:34:21 (#3180421)