ich hab ein kleines Performance Problem damit:
Code: Alles auswählen
Structure Objeigenschaft
x.l
y.l
name.s
EndStructure
Global Dim Mensch.Objeigenschaft(1000)
;main beginnt hier
;häuser anzeigen
For y = 1 To 200
For x = 1 To 200
bau=BauDaten(X, y);map in welcher die häuser gespeichert sind
If bau <>0;wenn Bau =0 dann steht kein Haus
DisplayTransparentSprite(bau+100, x*50,y*25)
EndIf
;-menschen
For z = 1 To 100
If x = mensch(z)\x And y=mensch(z)\y
DisplayTransparentSprite(7, mensch(z)\x*50,mensch(z)\y*25)
EndIf
Next z
Next x
Next y
das mit den Häusern klappt ganz gut.
Nur mit den Menschen hab ich folgendes Problem:
Die perspektive entsteht ja dadurch, dass die hintersten häuser zuerst angezeigt werden und somit die häuser, die weiter vorne sind, diese teilweise überdecken.
Da ein mensch ja z.b. auch hinter einem haus sein kann, muss ich doch jedes mal abfragen, ob ein mensch auf einem Feld steht.
Ich kann die häuser problemlos in einer map speichern, da auf jedem Feld nur EIN haus sein kann. auf einem Feld können aber mehrere Menschen stehen.
das Problem ist halt ich habe somit 200*200*100(bei 100 Menschen) abfragen auf
Code: Alles auswählen
If x = mensch(z)\x And y=mensch(z)\y
kann mir jemand helfen oder hab ich mich zu unklar ausgedrückt?
danke schonmal im vorraus!