Warum brauche ich 2 Schleifen und nicht eine
Übersicht

![]() |
BaschdiBetreff: Warum brauche ich 2 Schleifen und nicht eine |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
ich habe ein runden basierendes strategie Spiel gemacht. Um ein Feld auf der Map zu belegen, also unzugänglich zu machen für andere Einheiten benutze ich folgende Zeile Code: [AUSKLAPPEN] For u.unit=Each unit [...] ;Blockieren stat(u\xx/tile,u\yy/tile)=u\team [...] Next Damit bekommt das Feld die Variable des Teammitglied, welches auf dem Feld steht. Allerdings reicht diese Zeile hier nicht aus um das Feld zu belgen, ich brauche noch eine weitere, welche meine FPS so runetrhaut, dass ich das ändern will und muss: Code: [AUSKLAPPEN] ;Karte For x=0 To mapX For y=0 To mapY DrawImage tileset,x*tile-xback,y*tile-yback,map(x,y) ;########################################## For u.unit=Each unit stat(u\xx/tile,u\yy/tile)=u\team Next ;########################################## Next Next Wie man sieht sind das 3 Schleifen inneinander und damit ist völlig klar warum die fps runtergezogen wird , wenn man mehrere Einheiten hat. Aber warum? Normalerweise reicht es wenn ich eine Variable in der ersten Schleife ändere, aber in diesem Fall nicht. Wie kann man das umgehen, oder sogar beheben? dank im voraus mfg basti |
||
The_Baschdi@
Wer in Ogame is soll sofort zum Orden wechseln (D.O.) --- Alle Macht dem Orden |
Matthias |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Mh. Ziemlich undurchsichtig.
Was willst du denn überhaupt erreichen. Warum brauchst du denn 3Schleifen. Die Doppelschleife ist dazu da das Map anzuzeigen und die Andere um deine Units Upzudaten. Was heist den Tile ist das die TileGröße? |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
die unit schleife hat da effektiv nichts drin zu suchen. | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Baschdi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Eben das ist mein Problem, wenn ich die Schleife da nciht reinpacken würde, würde die variable stat(u\xx/tile,u\yy/tile) nicht verändert werden.
Also die Variable stat zeigt an welchen STATus das feld hat.(0=frei;1-n=belegt durch team n; 9=belegt durch wasser z.b.) Um jedes Feld, auf dem eine einheit steht mit der Variable seines teams zu versehen muss man also das schreiben: Code: [AUSKLAPPEN] For u.unit=Each unit [...] ;Blockieren stat(u\xx/tile,u\yy/tile)=u\team [...] Next aber dann funktioniert das nicht, also das feld hat immernoch die variable 0 und nicht die variable n für sien team n (also wenn team=1 dann n=1 dann stat=1) und das verstehe ich nicht, weil es nicht so sein dürfte......... mfg |
||
The_Baschdi@
Wer in Ogame is soll sofort zum Orden wechseln (D.O.) --- Alle Macht dem Orden |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
dann würd ich sagen, sind deine xx, yy auf den units einfach immer 0 oder so oder du überschreibst sie mit irgendwas wieder | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du machst auch nichts mit der Schleife die in Abhängigkeit deiner beiden anderen Schleifen zu tun haben, denn die Variablen x und y verwendest du nicht in deiner:
Code: [AUSKLAPPEN] For u.unit=Each unit
stat(u\xx/tile,u\yy/tile)=u\team Next Von daher kann diese Schleife auch genauso gut ausserhalb deiner doppelt verschachtelten Map-Zeichenroutine angewendet werden und wird somit nicht unnötiger weise mapx*mapy oft berechnet. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
Baschdi |
![]() Antworten mit Zitat ![]() |
---|---|---|
ja das weiß ich ja, und deshalb frag ich ja nach....
ihr habt also noch nie so ein Problem gehabt, also muss ich einfach ein bisschen rumprobieren...thx |
||
The_Baschdi@
Wer in Ogame is soll sofort zum Orden wechseln (D.O.) --- Alle Macht dem Orden |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group