Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

класс подскажите

30K
11 марта 2010 года
cpentyc
85 / / 23.02.2010
пытался создать класс для персонажа в бродилке. класс содержит в себе координаты положения персонажа на карте (карта двумерный байтовый масив). все было хорошо пока не попытался засунуть в класс функцию перемещения по карте персонажа. вне цикла все работало а внутри класса не могу обратиться к переменным цикла

private class pers
{
public int px;//положение на карте
public int py;
public float cx;//это не важные переменные для движения
public float cy;
public void left()
{
...
}
}
30K
11 марта 2010 года
cpentyc
85 / / 23.02.2010
функция выглядит так
if (a.px < 15)//a это объект класса персонаж
if (map[a.px+1, a.py ] != 1)
/*map-это карта пока содержит только значения 012
0-идти можно
1-стенка
2-ящик
*/
{
if (map[a.px+1, a.py ] == 2)
{
if (a.px <14)
if (map[a.px+2, a.py ] != 2 && map[a.px+2, a.py ] != 1)
{
a.px++;
map[a.px+1, a.py ] = 2;
map[a.px, a.py] = 0;
Refresh();


}
}
else
{
a.px++;
Refresh();
}
}
14K
12 марта 2010 года
Fenja
138 / / 20.03.2009
Цитата:
функция выглядит так


Это функция вне класса так описана?

Цитата:
a.px


Я так понял a - объект твоего класса. Если функция будет сделана внутри класса (как метод), то обращаться надо напрямую к px.

Цитата:
public int py;


Нас бы препод поубивал бы за такое :)

30K
12 марта 2010 года
cpentyc
85 / / 23.02.2010
Цитата: Fenja
Это функция вне класса так описана?

Я так понял a - объект твоего класса.


вы правы, но
я в коментариях написал же про это.

Цитата: Fenja

Если функция будет сделана внутри класса (как метод), то обращаться надо напрямую к px.

Нас бы препод поубивал бы за такое :)



за что поубивал?:) за анотацию???? или за что???

30K
12 марта 2010 года
cpentyc
85 / / 23.02.2010
вобще собираюсь сделать так. базовый клас Unit который тока ходить умеет и жизни. его наследует классы Personag и Monster.
Personag уже имеет больше характеристик в себе (манна сила уровень).

Класс Personag наследуют класс MagPersonag и VoinPersonag.
воин и маг будут содержать в себе различные коэфициенты увеличения параметров.пример базавая жизнь будет 30 а коэфициент у мага 5 а у война 15. Жизнь каждый уровень будет состоять из 30+коэфициент умноженый на уровень.То есть у мага на 3 лэве(30+5*3) а у война (30+15*3).Как идея??? Если бред или лучше сделать можно скажите:)
30K
12 марта 2010 года
cpentyc
85 / / 23.02.2010
Блин а что с картой делать??? она ни каким боком к классу не относится... ничего не выходит
602
12 марта 2010 года
KPI Student
265 / / 16.12.2006
Цитата: cpentyc
Блин а что с картой делать??? она ни каким боком к классу не относится... ничего не выходит



Я бы вынес все, что касается координат из класса персонажа и все, что касается координат возложил бы на плечи карты. Карту сделал бы отдельным классом World, содержащим список объектов и их координат. Примерно так:

Код:
class World
{
    typedef std::pair<WorldObject* /*объект*/, Coordinate/*координата*/> AllocatedObject;
    . . .
    std::list<AllocatedObject> m_allObjects;
    . . .
    bool moveObject(const AllocatedObject& object, const Coordinate& newPosition);
    . . .
};

...

class Unit : public WorldObject {};
class WoodenBox : public WorldObject {};
class River : public WorldObject {};

class Personage : public Unit {};
class Monster : public Unit {};

class WarriorPersonage : public Personage {};
class MagicPersonage : public Personage {};



...


ЗЫ. Сорри, в голове думаю плюсами, надеюсь понять идею не сложно)
ЗЗЫ. Геймдевом не занимался, (даже крестики-нолики не писал), поэтому это все сугубо мое ИМХО, на правильность не пертендующее.
14K
12 марта 2010 года
Fenja
138 / / 20.03.2009
[off]
Цитата:
или за что???


За то, что переменные объявлены как public :)[/off]

Цитата:
что касается координат возложил бы на плечи карты.


Имхо конечно, но если будет несколько магов, войнов и прочего, то координаты их на карте лучше гранить в классе, описывающем данный юнит, ибо создал сколько нужно объектов класса и передал в них координаты.

30K
13 марта 2010 года
cpentyc
85 / / 23.02.2010
Цитата: Fenja
[off]
За то, что переменные объявлены как public :)[/off]


Да я с идеей разбирался и некогда было по человечески сделать

Цитата: Fenja
[off]
Имхо конечно, но если будет несколько магов, войнов и прочего, то координаты их на карте лучше гранить в классе, описывающем данный юнит, ибо создал сколько нужно объектов класса и передал в них координаты.


персонаж на карте будет тока 1 ,а вот монстров-то больше. И я сам склоняюсь к вашему варианту

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог