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

Errschaffer

Alter Hase

  • »Errschaffer« ist der Autor dieses Themas

Beiträge: 865

Wohnort: Frankfurt

  • Private Nachricht senden

1

22.05.2009, 17:22

Unterschied?

Könnt ihr zwischen der oberen und der unteren Funktion einen unterschied entdecken(bis auf die anderen Namen)? Die obere geht die untere nicht. Listen error. Laufzeitfehler


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
void CGame::CollisionIceCream()
{

    SDL_Rect RectPlayer = m_pPlayer->GetRect ();
    list<CIceCream>::iterator i;

    for (i=m_lIceCream.begin (); i != m_lIceCream.end (); i++)
    {
        RectPlayer = m_pPlayer->GetRect ();
    
        if (RectPlayer.y < i->GetRect ().y + i->GetRect ().h && 
          RectPlayer.y + RectPlayer.h > i->GetRect ().y && 
          RectPlayer.x < i->GetRect ().x + i->GetRect ().w && 
          RectPlayer.x + 64 > i->GetRect ().x) 
      { 
    
          //Sound abspielen

          m_pSoundPing->PlaySound ();

          cout<<RectPlayer.x<<"      "<<RectPlayer.y<<endl;

          cout<<"Collision witch Item: IceCream"<<endl; //Kontroll ausgabe


          //Der IceCream das Leben "entziehen"

          i->SetALive(false);

          
         
        if(!i->GetALive ())
        
        i = m_lIceCream.erase(i);

         cout<<"Delete Item: IceCream"<<endl;


         
    } 
    
    }


}


void CGame::CollisionClock()
{

    SDL_Rect RectPlayer = m_pPlayer->GetRect ();
    list<CClock>::iterator i;

    for (i=m_lClock.begin (); i != m_lClock.end (); i++)
    {
        RectPlayer = m_pPlayer->GetRect ();
    
        if (RectPlayer.y < i->GetRect ().y + i->GetRect ().h && 
          RectPlayer.y + RectPlayer.h > i->GetRect ().y && 
          RectPlayer.x < i->GetRect ().x + i->GetRect ().w && 
          RectPlayer.x + 64 > i->GetRect ().x) 
      { 
    
          //Sound abspielen

          m_pSoundPing->PlaySound ();

          cout<<RectPlayer.x<<"      "<<RectPlayer.y<<endl;

          cout<<"Collision witch Item: Clock"<<endl; //Kontroll ausgabe


          //Der Clock das Leben "entziehen"

          i->SetALive(false);
        

          
         
        if(!i->GetALive ())
        i = m_lClock.erase(i);
        

         cout<<"Delete Item: Clock"<<endl;


         
    } 
    
    }


}

2

22.05.2009, 17:35

es gibt bei windows in der konsole so einen behfel der vergleicht 2 daten und sagt dir die unterschiede musste ma help eingeben und gucken

3

22.05.2009, 17:45

Alternativ kann man auch einen Debugger einsetzen...

4

22.05.2009, 18:37

Da sie wirklich eigentlich gleich wie die obere ist, vermute ich, dass es an m_lClock liegt.

Errschaffer

Alter Hase

  • »Errschaffer« ist der Autor dieses Themas

Beiträge: 865

Wohnort: Frankfurt

  • Private Nachricht senden

5

23.05.2009, 09:54

Ich werde wenn ich Zeit habe mal das ganze Porjekt neu erstellen. Irgendwie funzt gar nichts mehr. Beim Debugging bleibt alles Schwarz. Linker Error beim Release Modus obwohl alles eingetragen und das da oben halt.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

6

23.05.2009, 12:20

Wenn du wirklich willst dass dir hier ernsthaft geholfen wird dann solltest du auch etwas mehr Information über dein Problem preisgeben als nur "das da geht nicht" ;)

Was passiert denn?
Compilerfehler? Linkerfehler? Wenn ja, Wie lautet die Fehlermeldung?
Oder doch ein Fehler zur Laufzeit? Stürzt es ab? Im Debugger, oder die exe allein? Was für eine Art von Fehler? Vielleicht eine Access Violation?
...
...
...

Mit der aktuellen Informationslage kann man jedenfalls nicht mehr als nur raten.

7

23.05.2009, 19:09

Könnte mir auch vorstellen, dass es am "Clock" liegt...manchmal macht
der Compiler auch Stress, wenn man Code einfach einfügt (war jedenfalls
bei mir des öfteren so).
MfG Shiver!

„Ideen sind nur Ausgangspunkte. Um zu wissen, was man zeichnen will, muss man zu zeichnen anfangen.“ Pablo Picasso

Ibot Development - Mein Weg zum eigenen 2D RPG

Errschaffer

Alter Hase

  • »Errschaffer« ist der Autor dieses Themas

Beiträge: 865

Wohnort: Frankfurt

  • Private Nachricht senden

8

23.05.2009, 21:25

Zitat von »"dot"«

Wenn du wirklich willst dass dir hier ernsthaft geholfen wird dann solltest du auch etwas mehr Information über dein Problem preisgeben als nur "das da geht nicht" ;)

Was passiert denn?
Compilerfehler? Linkerfehler? Wenn ja, Wie lautet die Fehlermeldung?
Oder doch ein Fehler zur Laufzeit? Stürzt es ab? Im Debugger, oder die exe allein? Was für eine Art von Fehler? Vielleicht eine Access Violation?
...
...
...

Mit der aktuellen Informationslage kann man jedenfalls nicht mehr als nur raten.


Steht alles im 1.Post und eins über dir.

@Shiver Jop wird nochmal gucken bevor is das Projekt (Umgebung) neu aufsetze.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

9

23.05.2009, 22:28

Zitat von »"Errschaffer"«

Steht alles im 1.Post und eins über dir.


ähm

Zitat von »"Errschaffer"«

Die obere geht die untere nicht. Listen error. Laufzeitfehler


Aha! Ja einmal geht es und einmal nicht (was immer "geht" bedeutet). Bei der unteren gibts scheinbar einen Laufzeitfehler. Es gibt nur leider sehr viele Arten von Laufzeitfehler welcher das wäre steht nirgendwo.

Zitat von »"Errschaffer"«

Beim Debugging bleibt alles Schwarz. Linker Error beim Release Modus obwohl alles eingetragen und das da oben halt.


Ok, also einmal lauft es und tut nix oder so und einmal kommt ein Linker Error. Es gibt leider auch sehr viele Arten von Linkerfehlern welcher bei dir auftritt steht wiederum nirgendwo...

Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

10

23.05.2009, 23:09

Werden beide Funktionen auch zur gleichen Zeit aufgerufen und so getestet?
Meiner Meinung nach sind es wirklich zu wenig Informationen. Möglicherweise steht eine Variable, die in der Funktion genutzt wird nicht zur Verfügung(getRect()??)

Werbeanzeige