Autor Wątek: Klasa reprezentująca przedmioty w prostej grze 2D...  (Przeczytany 783 razy)

Offline zajmundov

  • Użytkownik

# Październik 07, 2018, 21:06:30
witajcie! tworzę prostą grę RPG i przechodzę do projektowania klasy, która będzie tworzyć bronie, przedmioty itp.

Wstępnie to wygląda tak. Jak myślicie czy to jest w miarę OK zrobione?
https://paste.ofcode.org/sjCj2zwnGByXhMGS6GXXJS

#ifndef ITEM_H
#define ITEM_H

#include "GameObject.h"

enum itemType_t
{
WEAPON_MALEE = 1,
WEAPON_DISTANCE,
ARMOR,
HEALTH_KIT
};

class Item : public GameObject
{
public:
void OnUse( void );
void OnEquip( void );
void OnRemove( void );

void SetItemID( int id )
{
m_itemID = id;
}

int GetItemID() const
{
return m_itemID;
}

void SetItemName( std::string name )
{
m_itemName = name;
}

std::string GetItemName() const
{
return m_itemName;
}

void SetDescription( std::string description )
{
m_itemDescription = description;
}

std::string GetDescription() const
{
return m_itemDescription;
}

private:
int m_itemID;
int m_attackDamage;
int m_defense;
std::string m_itemName;
std::string m_itemDescription;
};

#endif
« Ostatnia zmiana: Październik 07, 2018, 23:25:01 wysłana przez zajmundov »

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Avaj

  • Użytkownik

  • +1
# Październik 08, 2018, 09:33:21
Może tak, może nie, ciężko powiedzieć na podstawie takiego wycinka kodu. Jedyne co widzę, to te:

 void OnUse( void );
 void OnEquip( void );
 void OnRemove( void );

chyba chcesz żeby było:

 virtual void OnUse( void ) = 0;
 virtual void OnEquip( void ) = 0;
 virtual void OnRemove( void ) = 0;

żeby to były metody abstrakcyjne, które będą przeciążone w klasie dziedziczącej

Offline zajmundov

  • Użytkownik

# Październik 08, 2018, 18:50:40
o coś mi się przypomniało przy pokazji funkcji wirtualnych, myślę ze ta klasa wystarczy w prostej grze 2D

Offline zajmundov

  • Użytkownik

# Październik 28, 2018, 20:43:50
Ogólnie jescze nawet nie ruszyłem z przedmiotami w mojej grze, lenistwo ehh. Rozmyślałem o tym na sucho i wpadłem na pomysł, że mógłbym skorzystać z patternów

http://gameprogrammingpatterns.com/type-object.html
« Ostatnia zmiana: Październik 28, 2018, 20:50:02 wysłana przez zajmundov »