Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

11

11.01.2009, 11:03

StandartklasseHeader:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
class C_Objekt
{
//Membervariablen

protected:
//Momentane Position

    short X_Pos;
    short Y_Pos;
//Zielposition

    short X_Target;
    short Y_Target;
//Ordnungs Nummer

    short ID;
    bool Team;
    
//Memberfunktionen

public:
    //Statische Zählvariable

    static short counter;
//Etappenziel errechnen und erreichen

    void F_SetEtap (short &XWayp,short &YWayp);
//Ziel setzen

    void F_SetTarget (short X_NewTarget,short Y_NewTarget);
//Objekt positionieren

    void F_SetPos (short X_NewPos,short Y_NewPos);
//Objektposition Anzeigen

    void F_ShowPos (short &X_ShowPos,short &Y_ShowPos);
//Konstruktor

         C_Objekt ();
};

[/cpp]

12

11.01.2009, 11:04

Standartklasse Funktionen:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
void C_Objekt::F_SetEtap ( short &X_Wayp , short &Y_Wayp )
{
    

    if(X_Target != X_Pos || Y_Target != Y_Pos)
    { 
    //Soll man schräg gehen?

        if (((X_Target - X_Pos)^2) != ((Y_Target - Y_Pos)^2))
        {
            //Nein!!

        //Dann doch eher geradeaus

        //In der Y_Achse Bewegen?

            if(((X_Target-X_Pos)^2) < ((Y_Target-Y_Pos)^2))
            {
            //Ja! Nach oben oder unten?

                if(Y_Pos < Y_Target)
                {
                //nach oben

                    Y_Pos++;
                }
                else
                {
                //nach unten

                    Y_Pos--;
                }
            }
            else
            {
            //Doch eher in der X_Achse

            //Nach links oder rechts

                if(X_Pos < X_Target)
                {
                //nach rechts

                    X_Pos++;
                }
                else
                {
                //nach links

                    X_Pos--;
                }
            }   
        }
        else
        if (((X_Target - X_Pos)^2) == ((Y_Target - Y_Pos)^2))
        {
            //Wenn man doch schräg

            //geht, wo liegt dann das Ziel?

            // Ist es über der momentanen Position?

            if (X_Pos < X_Target)
            {
                //JA!es ist oben

                //Ist es rechts von der momentanen Position?

                if (Y_Pos < Y_Target)
                {
                    //Ja also nach rechts oben

                    X_Pos++;
                    Y_Pos++;
                }
                else
                {
                    //Nein also nach links oben

                    X_Pos++;
                    Y_Pos--;
                }
            }
            else
            {
                //NEIN!es ist unten

                //Ist es rechts von der momentanen Position?

                if (Y_Pos < Y_Target)
                {
                    //Ja also nach rechts unten

                    X_Pos--;
                    Y_Pos++;
                }
                else
                {
                //Nein also nach links unten

                X_Pos--;
                Y_Pos--;
                }

            }
    
        }
        //neue Koordinaten definieren

        X_Wayp = X_Pos;
        Y_Wayp = Y_Pos;
    }
};

//neues Ziel setzen

void C_Objekt::F_SetTarget (short X_NewTarget,short Y_NewTarget)
{
    X_Target = X_NewTarget;
    Y_Target = Y_NewTarget;
};

//Objekt positionieren

void C_Objekt::F_SetPos(short X_NewPos,short Y_NewPos)
{
    X_Pos = X_NewPos;
    Y_Pos = Y_NewPos;
};

//Objektposition anzeigen

void C_Objekt::F_ShowPos (short &X_ShowPos,short &Y_ShowPos)
{
    X_ShowPos = X_Pos;
    Y_ShowPos = Y_Pos;
};

//Konstruktor

C_Objekt::C_Objekt ()
{
    X_Pos = 0;
    Y_Pos = 0;
    counter++;
    ID = counter;
};
//Statische Countervariable

short C_Objekt::counter;

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

13

11.01.2009, 11:05

Gings hier nicht um einen C_Swordman?
@D13_Dreinig

14

11.01.2009, 11:05

AbgeleiteteKlasseHeader:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class C_Swordman : public C_Objekt
{
private:
    int Leben;
    short Angriff;
    short Rüstung;

public:
    //Konstruktor

    C_Swordman ();
    //Angriffswert Übergeben(Angreifen)

    short attack ();
    //Schaden Erleiden(angegriffen werden)

    int damage (short Schaden);
}

15

11.01.2009, 11:06

Und die Funktionen des Schwertkämpfers:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
C_Swordman::C_Swordman ()
{
    Leben = 150;
    Angriff = 10;
    Rüstung = 5;
}

//Attackieren

short C_Swordman::attack()
{
    return Angriff;
};

//Einstecken

int C_Swordman::damage(short Schaden)
{
    Leben -= Angriff - Rüstung;
};

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

16

11.01.2009, 11:08

Semikolon bei der Klassendef vom C_Swordman fehlt.
@D13_Dreinig

17

11.01.2009, 16:32

Zitat von »"K-Bal"«

Das mag schon sein, aber das eigentliche Problem wird dadurch wahrscheinlich nicht gelöst. ;)
Trotzdem darf man es ja wohl anmerken. :)

K-Bal

Alter Hase

Beiträge: 703

Wohnort: Aachen

Beruf: Student (Elektrotechnik, Technische Informatik)

  • Private Nachricht senden

18

11.01.2009, 16:33

Zitat von »"Nexus"«

Zitat von »"K-Bal"«

Das mag schon sein, aber das eigentliche Problem wird dadurch wahrscheinlich nicht gelöst. ;)
Trotzdem darf man es ja wohl anmerken. :)


Niemals :badgrin:

;)

19

11.01.2009, 17:50

probiert aber es hilft net

Faule Socke

Community-Fossil

Beiträge: 1 915

Wohnort: Schreibtischstuhl

  • Private Nachricht senden

20

11.01.2009, 17:59

Flok sicher? Schau dir mal alle klassen an (besonders die im letzten include der cpp datei) ob auch wirklich das Semikolon am ende ist. Die Fehlermeldung sollte sich zumindest ändern...

Du kannst auch mal den C'tor auskommentieren und schauen, was dann passiert.

Socke

Werbeanzeige