type zu "type-wegpunkt" bewegen[erledigt]

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Dottakopf

Betreff: type zu "type-wegpunkt" bewegen[erledigt]

BeitragDi, Dez 18, 2007 13:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi blitzer !

wollt mich mit den befehlen first after before last usw. auseinander setzen, und hab darum zum lernen n kleines programm geschrieben, bei dem rechtecke wegpunkte in einer gewissen reihenfolge ablaufen sollen.

Dazu hab ich mir nen kleinen editor geschrieben bei dem man die "way-points" setzt und dann anschließen in der richtigen "ablauf reihenfolge" in ne txt datei abspeichert. Nur leider klappt das mit dem von way point zu way point laufen ned wirklich ^^

so wollte ich es lösen.
way points erstellen
zum ersten waypoint type eintrag springen
und nun immer mit "after" einen eintrag weiter
und rechteck auf neun waypoint bewegen

code:

info2 <--- = ein enemy
info <----= ein waypoint

Code: [AUSKLAPPEN]

Function update_enemy()

 

   info.waypoint = First waypoint
   
   ;update
   For info2.enemy = Each enemy
     
     
        If info2\ex > info\wx Then
           info2\ex = info2\ex - 1
        End If

        If info2\ey > info\wy Then
           info2\ey = info2\ey - 1
        End If 
 
        If info2\ex < info\wx Then
           info2\ex = info2\ex +1
        End If   

        If info2\ey < info\wy Then
           info2\ey = info2\ey +1
        End If

         
        If info2\ey = info\wy Then info = After info
                               
      ;enemy zeichnen               
      Rect info2\ex*32,info2\ey*32,32,32,1
             
   Next




End Function




wenn ich jetz zb 5 enemys erstelle, bewegen sich alle auf way point 1 ... dan bleibt dort ein enemy stehen und der rest rennt zum nächsten way point, (da bleibt dan au einer) .. das solange bis alle 5 enemys an einen waypoint stehen und sich nix mehr tut . Ich will aber dass alle zum schluss am letzten way point stehen. Oder einfach gesagt, die nicht an jedem punkt stehen bleiben.
was mache ich falsch ?

~EDIT~ ohhhh etz seh ich das problem^^ (glaub ich)

ich brauch noch irgendeine schleife.. damit der stehengebliebene enemy sich wieder zum nächsten waypoint auf macht.

Hmm das funtz zwar nicht aber könnte scho besser sein

Code: [AUSKLAPPEN]

Function update_enemy()

 

   info.waypoint = First waypoint
   
While Not info.waypoint = Last waypoint

   ;update
   For info2.enemy = Each enemy
     
     
        If info2\ex > info\wx Then
           info2\ex = info2\ex - 1
        End If

        If info2\ey > info\wy Then
           info2\ey = info2\ey - 1
        End If 
 
        If info2\ex < info\wx Then
           info2\ex = info2\ex +1
        End If   

        If info2\ey < info\wy Then
           info2\ey = info2\ey +1
        End If

         
        If info2\ey = info\wy And info2\ex = info\wx Then Exit 
                               
      ;enemy zeichnen               
      Rect info2\ex*32,info2\ey*32,32,32,1
      
             
   Next

   info = After info

   
Wend

End Function



*~EDIT~ *
habs jetzt doch noch binbekommen ... man sitz ich heut aufm schlauch...

Code: [AUSKLAPPEN]

Function update_enemy()

 
    info.waypoint = First waypoint

  Repeat
      ;update
      For info2.enemy = Each enemy

     
       
        If info2\ex > info\wx And info2\e_nr = info\w_nr Then
           info2\ex = info2\ex - 1
        End If

        If info2\ey > info\wy And info2\e_nr = info\w_nr Then
           info2\ey = info2\ey - 1
        End If 
 
        If info2\ex < info\wx And info2\e_nr = info\w_nr Then
           info2\ex = info2\ex +1
        End If   

        If info2\ey < info\wy And info2\e_nr = info\w_nr Then
           info2\ey = info2\ey +1
        End If

        If info2\ey = info\wy And info2\ex = info\wx And info2\e_nr = info\w_nr Then info2\e_nr = info2\e_nr +1 Exit
                                 
        ;enemy zeichnen               
        Rect info2\ex*32,info2\ey*32,32,32,1
                   
   Next

        info = After info ;next waypoint

 Until info.waypoint = Last waypoint
End Function


mfg Dottakopf

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group