JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=39ff3109bb14dbbba1d9cb12b6b752aaMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

C# gerneric list

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Pizzabroetchen
Junior JLI'ler



Anmeldedatum: 29.02.2004
Beiträge: 55

Medaillen: Keine

BeitragVerfasst am: 11.12.2008, 15:37    Titel: C# gerneric list Antworten mit Zitat

Hallo zusammen,

ich schaue mir gerade ein wenig XNA an und scheitere am C# Code. Und zwar versuche ich gerade dieses Asterioden Besipiel vom XNA Club zu erweitern, sodass wenn ein Asteriod zerstört wird, mehrere kleinere entstehen. So weit, so gut
Die neuen Asterioden speichere ich in einer Liste
List<Asteroid> asteroidSmallList = new List<Asteroid>();

nun würde ich gerne position und Rotation in der Update Methode ändern, daher habe ich versucht die Update Methode der Asterioden so aufzurufen

int iNumOfSmallAsteroids = asteroidSmallList.Count;
for (int i = 0; i < iNumOfSmallAsteroids; i++)
{
asteroidSmallList[i].Update(timeDelta);
}

Leider passiert nix. die neuen werte werden nicht übernohmen. nachdem ich das ganze so angepaßt habe, gings

int iNumOfSmallAsteroids = asteroidSmallList.Count;
for (int i = 0; i < iNumOfSmallAsteroids; i++)
{
Asteroid test = asteroidSmallList[i];
test.Update(timeDelta);
asteroidSmallList.RemoveAt(i);
asteroidSmallList.Add(test);
}

Meine Frage ist, ob ich wirklich immer ein neues Objekt erzeugen muss oder ich etwas nicht verstanden habe. Oder entferne und adde ich hier immer nur die Referenz und nicht das komplette Objekt (bzw. struct)? Ansonsten wäre das ja wohl eher nicht so performant, wenn mann das öfter aufruft
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 11.12.2008, 20:32    Titel: Antworten mit Zitat

Zitat:
Referenz und nicht das komplette Objekt (bzw. struct)


Ist Asteroid denn eine struct? Diese werden wenn ich mich nicht irre direkt kopiert und geben dann sozusagen eine neue Instanz zurück. Wenn das so ist dann musst du den Asteroid zu einem object wandeln.

Ansonsten könnte ich mir dieses verhalten auch nicht erklären.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Pizzabroetchen
Junior JLI'ler



Anmeldedatum: 29.02.2004
Beiträge: 55

Medaillen: Keine

BeitragVerfasst am: 16.12.2008, 15:50    Titel: Antworten mit Zitat

ja es ist ein struct. Ich werd Asteriod mal als Klasse implementieren und schaun was er macht

edit: ok, als klasse definiert gehts.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
David
Super JLI'ler


Alter: 39
Anmeldedatum: 13.10.2005
Beiträge: 315

Medaillen: Keine

BeitragVerfasst am: 19.12.2008, 15:03    Titel: Antworten mit Zitat

C# kennt übrigens auch Iteratoren und zieht es im Normfall vor, wenn diese verwendet werden! Smile
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
xardias
JLI Master


Alter: 38
Anmeldedatum: 28.12.2003
Beiträge: 804
Wohnort: Palo Alto, CA
Medaillen: Keine

BeitragVerfasst am: 23.12.2008, 07:46    Titel: Antworten mit Zitat

Oder noch schöner: Foreach.

CPP:
foreach(Asteroid asteroid in smallAsteroidList)
{

}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
David
Super JLI'ler


Alter: 39
Anmeldedatum: 13.10.2005
Beiträge: 315

Medaillen: Keine

BeitragVerfasst am: 23.12.2008, 09:13    Titel: Antworten mit Zitat

xardias hat Folgendes geschrieben:
Oder noch schöner: Foreach.

CPP:
foreach(Asteroid asteroid in smallAsteroidList)
{

}


Foreach verwendet doch das Aufgebot der Iteratoren von List<>. :p
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
xardias
JLI Master


Alter: 38
Anmeldedatum: 28.12.2003
Beiträge: 804
Wohnort: Palo Alto, CA
Medaillen: Keine

BeitragVerfasst am: 23.12.2008, 09:15    Titel: Antworten mit Zitat

Jo, ich hab auch nix anderes behauptet, aber so könnte man ja auf die Idee kommen Iteratoren per Hand zu benutzen Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
David
Super JLI'ler


Alter: 39
Anmeldedatum: 13.10.2005
Beiträge: 315

Medaillen: Keine

BeitragVerfasst am: 23.12.2008, 09:18    Titel: Antworten mit Zitat

xardias hat Folgendes geschrieben:
Jo, ich hab auch nix anderes behauptet, aber so könnte man ja auf die Idee kommen Iteratoren per Hand zu benutzen Wink


Richtig! Vorsicht ist besser als Nachsicht! ;P
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum