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

1

10.03.2012, 19:24

SDL Game Listing 12.40


Hallo alle zusammen
Ich bin noch neu in der großen Programmier Welt und habe mir diese Buch (C++ für Spieleprogrammierer) gekauft. Nun zum ende hin gibt ein Problem zudem ich keine Lösung finde.
Im Listing 12.40 gibt es die folgende for-Schleife:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
for (ItShot = ShotList->begin (); 
ItShot != ShotList->end (); 
++ItShot) 

{ 

RectShot = ItShot->GetRect(); 

if(RectShot.y < RectAsteroid.y +RectAsteroid.h && 
RectShot.y + RectShot.h > RectAsteroid.y && 
RectShot.x < RectAsteroid.x + RectAsteroid.w && 
RectShot.x + RectShot.w > RectAsteroid.x) 
{ 

ItAsteroid->SetAlive(false); 
ItShot ->SetAlive (false); 

} 

} 


das problem liegt dierekt im kopf der schleife sowohl das = als auch das != werden als fehler markiert und bei versuch es zu debugen
kommt dann folgende fehlermeldung:
Fehler 1 error C2679: Binärer Operator '=': Es konnte kein Operator gefunden werden, der einen rechtsseitigen Operanden vom Typ 'std::_List_iterator<_Mylist>' akzeptiert (oder keine geeignete Konvertierung möglich)



Vielleicht gibt es jemanden der das gleich Problem hatte und mit helfen kann oder sonst jemand hat eine Idee.
Ich verwende Visual Studio 2010.

Für Hilfe wäre ich sehr dank bar.

Mfg Balder



Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Balder« (10.03.2012, 21:05)


Lares

1x Contest-Sieger

  • Private Nachricht senden

2

10.03.2012, 20:40

Zeig mal die Stellen, wo du ShotList und ItShot deklarierst.
Btw. Code kannst du, wenn du deinen Text im Forum schreibst, mit den Button [c++] formatieren. Der Quellcode kommt dann einfach zwischen die Tags.

C-/C++-Quelltext

1
2
3
4
void beispiel()
{
 std::cout << "Willkommen im Forum." << std::endl;
}

3

10.03.2012, 21:12

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
 void CGame::CheckCollisions() 
{ 
list<CShot> *ShotList = m_pPlayer->GetShotList(); 

list<CAsteroid>::iterator ItAsteroid = m_AsteroidList.begin(); 
list<CAsteroid>::iterator ItShot; 


SDL_Rect RectAsteroid; 
SDL_Rect RectShot; 

while(ItAsteroid != m_AsteroidList.end()) 
{ 

RectAsteroid = ItAsteroid->GetRect(); 

for (ItShot = ShotList->begin (); 
ItShot != ShotList->end (); 
++ItShot) 
{ 

RectShot = ItShot->GetRect(); 

if(RectShot.y < RectAsteroid.y +RectAsteroid.h && 
RectShot.y + RectShot.h > RectAsteroid.y && 
RectShot.x < RectAsteroid.x + RectAsteroid.w && 
RectShot.x + RectShot.w > RectAsteroid.x) 
{ 

ItAsteroid->SetAlive(false);ItShot ->SetAlive (false); 
} 
} 

if(ItAsteroid->IsAlive ()) 
ItAsteroid ++; 
else 
ItAsteroid = m_AsteroidList.erase (ItAsteroid); 
}}


ich hoffe das ist der teil sonst muss ich nochmal genauer suchen.

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

4

10.03.2012, 21:14

Dein ShotIterator ist vom Typ list<CAsteroid>::iterator 8)

Achja, willkommen im Forum.

Bist du schon dabei das Spiel zu erweitern? Ich würde dir empfehlen lieber eigene Projekte zu schreiben. Erstmal ein bisschen in der Konsole und dann 2d Spiele mit der SFML.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

5

10.03.2012, 21:19

oh man :dash: wie blind kann man sein danke :rolleyes:


ja ich schreibe gerade an einem kleinem schiffe versenken im konsolenfenster wollte das bsp aus dem buch nur mal um was mit 2d grafik zu sehen :)


nun kommt ein neuer fehler:

Fehler 1 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp___CrtDbgReportW" in Funktion ""public: class std::_List_const_iterator<class std::_List_val<class CAsteroid,class std::allocator<class CAsteroid> > > & __thiscall std::_List_const_iterator<class std::_List_val<class CAsteroid,class std::allocator<class CAsteroid> > >::operator++(void)" (<A href="https://www.spieleprogrammierer.de/wcf/js/'https://www.spieleprogrammierer.de/mailto:??E???E?$_List_const_iterator@V?$_List_val@VCAsteroid@@V?$allocator@VCAsteroid@@@std@@@std@@@std@@QAEAAV01@XZList_const_iterator@V?[url='https://www.spieleprogrammierer.de/mailto:??E?<A href="https://www.spieleprogrammierer.de/mailto:??E?$_List_const_iterator@V?$_List_val@VCAsteroid@@V?$allocator@VCAsteroid@@@std@@@std@@@std@@QAEAAV01@XZ">??E?$_List_const_iterator@V?$_List_val@VCAsteroid@@V?$allocator@VCAsteroid@@@std@@@std@@@std@@QAEAAV01@XZList_val@VCAsteroid@@V?$allocator@VCAsteroid@@@std@@@std@@@std@@QAEAAV01@XZ'" wcf_href="'https://www.spieleprogrammierer.de/mailto:??E?List_const_iterator@V?<A href="https://www.spieleprogrammierer.de/mailto:??E?$_List_const_iterator@V?$_List_val@VCAsteroid@@V?$allocator@VCAsteroid@@@std@@@std@@@std@@QAEAAV01@XZ">??E?$_List_const_iterator@V?$_List_val@VCAsteroid@@V?$allocator@VCAsteroid@@@std@@@std@@@std@@QAEAAV01@XZList_val@VCAsteroid@@V?$allocator@VCAsteroid@@@std@@@std@@@std@@QAEAAV01@XZ'" wcf_href="'https://www.spieleprogrammierer.de/mailto:??E?List_val@VCAsteroid@@V?$allocator@VCAsteroid@@@std@@@std@@@std@@QAEAAV01@XZ']??E?$_List_const_iterator@V?$_List_val@VCAsteroid@@V?$allocator@VCAsteroid@@@std@@@std@@@std@@QAEAAV01@XZList_val@VCAsteroid@@V?$allocator@VCAsteroid@@@std@@@std@@@std@@QAEAAV01@XZ'" wcf_href="'https://www.spieleprogrammierer.de/mailto:??E?[url='https://www.spieleprogrammierer.de/mailto:??E?<A href="https://www.spieleprogrammierer.de/mailto:??E?$_List_const_iterator@V?$_List_val@VCAsteroid@@V?$allocator@VCAsteroid@@@std@@@std@@@std@@QAEAAV01@XZ">??E?$_List_const_iterator@V?$_List_val@VCAsteroid@@V?$allocator@VCAsteroid@@@std@@@std@@@std@@QAEAAV01@XZList_const_iterator@V?List_const_iterator@V?<A href="https://www.spieleprogrammierer.de/mailto:??E?$_List_const_iterator@V?$_List_val@VCAsteroid@@V?$allocator@VCAsteroid@@@std@@@std@@@std@@QAEAAV01@XZ">??E?$_List_const_iterator@V?$_List_val@VCAsteroid@@V?$allocator@VCAsteroid@@@std@@@std@@@std@@QAEAAV01@XZList_const_iterator@V?List_val@VCAsteroid@@V?$allocator@VCAsteroid@@@std@@@std@@@std@@QAEAAV01@XZ']??E?$_List_const_iterator@V?$_List_val@VCAsteroid@@V?$allocator@VCAsteroid@@@std@@@std@@@std@@QAEAAV01@XZList_const_iterator@V?[url='https://www.spieleprogrammierer.de/mailto:??E?<A href="https://www.spieleprogrammierer.de/mailto:??E?$_List_const_iterator@V?$_List_val@VCAsteroid@@V?$allocator@VCAsteroid@@@std@@@std@@@std@@QAEAAV01@XZ">??E?$_List_const_iterator@V?$_List_val@VCAsteroid@@V?$allocator@VCAsteroid@@@std@@@std@@@std@@QAEAAV01@XZList_val@VCAsteroid@@V?$allocator@VCAsteroid@@@std@@@std@@@std@@QAEAAV01@XZ'">??E?$_List_const_iterator@V?$_List_val@VCAsteroid@@V?$allocator@VCAsteroid@@@std@@@std@@@std@@QAEAAV01@XZList_const_iterator@V?<A href="https://www.spieleprogrammierer.de/mailto:??E?$_List_const_iterator@V?$_List_val@VCAsteroid@@V?$allocator@VCAsteroid@@@std@@@std@@@std@@QAEAAV01@XZ">??E?$_List_const_iterator@V?$_List_val@VCAsteroid@@V?$allocator@VCAsteroid@@@std@@@std@@@std@@QAEAAV01@XZList_val@VCAsteroid@@V?$allocator@VCAsteroid@@@std@@@std@@@std@@QAEAAV01@XZ'">??E?$_List_const_iterator@V?$_List_val@VCAsteroid@@V?$allocator@VCAsteroid@@@std@@@std@@@std@@QAEAAV01@XZList_val@VCAsteroid@@V?$allocator@VCAsteroid@@@std@@@std@@@std@@QAEAAV01@XZ']??E?$_List_const_iterator@V?$_List_val@VCAsteroid@@V?$allocator@VCAsteroid@@@std@@@std@@@std@@QAEAAV01@XZList_val@VCAsteroid@@V?$allocator@VCAsteroid@@@std@@@std@@@std@@QAEAAV01@XZ'">??E?$_List_const_iterator@V?$_List_val@VCAsteroid@@V?$allocator@VCAsteroid@@@std@@@std@@@std@@QAEAAV01@XZ)".

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

6

10.03.2012, 21:24

Schau mal ins Kapitel 12.2.2 "Projekt mit Microsoft Visual C++ .net 2003 anlegen"
Du hast vermutlich vergessen auf Multithreaded-DLL bzw., für die Debugversion auf Mutlithreaded-DLL Debug umzustellen.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

7

10.03.2012, 21:30

super danke habs gefunden jetzt geht alles :)

8

11.03.2012, 17:43

huhu, ich finde nicht, dass man da immer gleich mit der sfml ankommen muss. so groß wie teilweise berichtet sind die performance vorteile nicht (man muss natürlich unter gleichen voraussetzungen testen und teilweise hat auch da die sdl die nase vorn, ich hatte auch ein gesamtes spiel einmal mit sdl und einmal mit sfml laufen lassen und das ergebnis war zugunsten sdl). jedenfalls hoffe ich auf eine weiterentwicklung der sdl. die sfml nimmt einem natürlich ne menge arbeit ab, woman in sdl selber implementieren muss... jetzt aber keine sdl sfml diskussion ich wollte nur n bischen werbung für die sdl machen. die ist nicht gar so schlecht und hat daseinsberechtigung..

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

9

11.03.2012, 18:12

Kann ich nur unterstreichen. Und ja wird weiterentwickelt. Der 1.3er Zweig wurde schon vor kurzen in 2.0 umbenannt und ich muss sagen es ist wirklich schön zu benutzen.
Hier der entsprechende SDL Wiki link für den 2.0er Zweig: http://wiki.libsdl.org/moin.cgi/StartSeite
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

10

11.03.2012, 19:17

die sfml nimmt einem natürlich ne menge arbeit ab, woman in sdl selber implementieren muss...

Genau deswegen hab ich die SFML erwähnt. Ausserdem ist sie Objektorientiert. Die Performanceunterschiede sind für Anfänger sowieso erstmal zweitrangig ;)
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

Werbeanzeige