Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[SFML 2] System przedmiotów i ekwipunku

Ostatnio zmodyfikowano 2015-10-02 11:05
Autor Wiadomość
notabigthreat
» 2015-09-20 17:59:38
Zgadzam się z @UP, lecz nakłaniam, by w domyślnej implementacji - gdzie to możliwe - zwracać wartość, która nic nie zmieni.
C/C++
class Item
{
public:
   
    //...
    virtual int getHpBonus() const { return 0; }
    virtual int getManaBonus() const { return 0; }
    virtual Xyz getXyzBonus() const { return /*odpowiednik zera (Null Object?)*/; }
    virtual void onPickup( Player & owner ) const { }
    //zwraca true wtedyitylkowtedygdy przedmiot powinien pozostać w ekwipunku
    //możliwe jest inne rozwiązanie: wywołać dla 'owner' metodę usuwającą
    virtual bool activate( Player & owner ) { return true; }
    //...
};

class Foo
    : public Item
{
public:
   
    //...
    int getHpBonus() const override { return 30; }
    //...
};

//to podejście zakłada, że miksturę trzeba wypić, by uzyskać efekt (alternatywa: wzmocnienie w onPickup)
class Mana_potion
    : public Item
{
    int mana;
public:
   
    //...
    int getManaBonus() const override { return bonus; }
    bool activate( Player & owner ) override { owner->replenishMana( mana ); return false; }
    //...
};
@EDIT:
Zamiast pobierania osobno wzmocnienia tego czy tamtego możliwe jest:
C/C++
class Item
{
public:
    //...
    virtual void applyPassiveEffects( Player & target ) const = 0;
    //...
};
P-137726
qest43
Temat założony przez niniejszego użytkownika
» 2015-09-29 20:42:12
Stworzyłem klasę Item, i od niej będą dziedziczyć inne przedmioty, teraz zrobiłem klasę Potion, i w konstruktorze podaje się co będzie dodawać, np. HP - 20, Mana - 40.

Jeszcze nie mam pomysłu na stworzenie ekwipunku, wszystko wychodzi mi strasznie zawile. Potrzebuję pól ekwipunku, do tego pola ekwipunku z ubranymi przedmiotami, możliwość przenoszenia przedmiotów między sloty itd. Macie jakieś pomysły.
P-138019
DejaVu
» 2015-10-01 14:16:57
przeciez masz juz opisane rozwiazanie...
P-138070
Acarin1995
» 2015-10-02 11:05:43
Pewnie mu chodzi o tablice, albo kontener obiektów w którym mógłby trzymać obiekty z różnych klas dziedziczone z klasy nadrzędnej item.
Do tego powinien stworzyć klase zarządzającą ekwipunkiem, w której zadeklarował by Vectora ( choć jak chcę zrobić ekwipunek ala wow/ czy margonem powinien użyć czegoś innego ) O to ci chodzi?
P-138110
1 2 « 3 »
Poprzednia strona Strona 3 z 3