Für jeden Spieler ein Objekt erstellen

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

faggie

Betreff: Für jeden Spieler ein Objekt erstellen

BeitragFr, Okt 27, 2006 19:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo!

Ich versuche mich gerade an einem kleinen Multiplayerspiel und habe schon mein erstes Problem:

Wenn ein Spieler auf einem Server neu gekommen ist, soll ein Objekt erstellt werden, in dem alle Informationen über den Spieler gespeichert werden.

Die Struktur:
Code: [AUSKLAPPEN]
Type Spieler
   Field Name:String
   Field x:Int
   Field y:Int
   Field Winkel:Int
End Type


Wie gesagt, jetzt hat sich ein neuer Spieler verbunden und nun sollte irgendwie soetwas passieren:
Code: [AUSKLAPPEN]
Local SpielerNR???:Spieler = New Spieler
Name.SpielerNR???="Hans"
x.SpielerNR???=100
y.SpielerNR???=100
Winkel.SpielerNR???=0


Und genau an der Stelle der "???" liegt mein Problem. Wie soll ich die Variable nennen? Jeder Spieler muss ja eine eindeutige Variable haben, bzw. eine eindeutige ID zugeordnet bekommen.

Wie könnte ich das am besten lösen?

Gruß,
faggie

Jolinah

BeitragFr, Okt 27, 2006 20:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Du könntest die Spieler auch einfach in eine Liste einfügen:

Code: [AUSKLAPPEN]

Local spieler_liste:TList = new TList

...

Type Spieler
  Field ID:Int
  Field Name:String
  ...
End Type

'Erstellen des Objekts
Local s:Spieler = new Spieler
s.ID = spieler.Count()
s.Name = "WasAuchImmer"

'In die Liste einfügen
spieler_liste.AddLast(s)

...

'Alle Spieler durchgehen
For s:Spieler = EachIn spieler_liste
  Print s.Name
Next


So ungefähr Wink Hab das aus dem Kopf raus geschrieben.

PS: Du hast da übrigens was verdreht, Name.SpielerNR??? wäre SpielerNR???.Name Smile

Edit: Und wenn du dann einen Spieler anhand der ID suchst könntest du die Liste in ein Array konvertieren und per Index ansprechen:

Code: [AUSKLAPPEN]
Local s:Spieler = Spieler(spieler_liste.ToArray())[ID]
 

Dreamora

BeitragFr, Okt 27, 2006 21:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du index basierenden Zugriff willst (Spieler???), dann musst du arrays benutzen.

BlitzMax ist keine Scriptsprache, weswegen es nicht möglich ist via Loops etc variablennamen "zusammenzubasteln", sondern nur via Array
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group