Monster bewegungsroutine

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Affenmann

Betreff: Monster bewegungsroutine

BeitragMi, Jul 26, 2006 15:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey

Irgentwie läuft mein Monster immer zu weit ^^

Vor der Schleife
Code: [AUSKLAPPEN]

For ratte.monster = Each monster
Ratte\bewtimer2=MilliSecs()
Next


In der Schleife
Code: [AUSKLAPPEN]

For ratte.monster = Each Monster
Ratte\Bewtimer1=MilliSecs()
Next


Ausschnitt der Schleife:

Code: [AUSKLAPPEN]

For ratte.monster = Each monster
If Ratte\bewtimer2+700<Ratte\bewtimer1 Then ratte\Bewrichtung=Rnd(1,4)

If ratte\Bewrichtung=1 And Ratte\bewtimer2+700<Ratte\bewtimer1 Then
Ratte\gelaufenx=Ratte\gelaufenx+1
Ratte\Zaehler=Ratte\Zaehler+1
If Ratte\Zaehler=16 Then
Ratte\bewtimer1=MilliSecs()
EndIf
EndIf

If ratte\Bewrichtung=2 And Ratte\bewtimer2+700<Ratte\bewtimer1 Then
Ratte\gelaufenx=Ratte\gelaufenx-1
Ratte\Zaehler=Ratte\Zaehler+1
If Ratte\Zaehler=16 Then
Ratte\bewtimer1=MilliSecs()
EndIf
EndIf

If ratte\Bewrichtung=3 And Ratte\bewtimer2+700<Ratte\bewtimer1 Then
Ratte\gelaufeny=Ratte\gelaufeny+1
Ratte\Zaehler=Ratte\Zaehler+1
If Ratte\Zaehler=16 Then
Ratte\bewtimer1=MilliSecs()
EndIf
EndIf

If ratte\Bewrichtung=4 And Ratte\bewtimer2+700<Ratte\bewtimer1 Then
Ratte\gelaufeny=Ratte\gelaufeny-1
Ratte\Zaehler=Ratte\Zaehler+1
If Ratte\Zaehler=16 Then
Ratte\bewtimer1=MilliSecs()
EndIf
EndIf

Next


Hab schon rumgeprüft aber es klappt einfach nicht.
Das einzigste was geklappt hat war , dass das Monster halt die 16 Pixel gelaufen ist aber danach ging es wieder nicht. Also das Monster steht still oder bekommt nen Schüttelfrost Smile

Hoffe ihr könnt mir helfen.

MfG Affenmann
  • Zuletzt bearbeitet von Affenmann am Do, Jul 27, 2006 9:46, insgesamt einmal bearbeitet

Smokie

BeitragMi, Jul 26, 2006 20:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Ist doch einfach Aber man sieht's im eigenen COde net, versteh ich.

Code: [AUSKLAPPEN]

if ratte\zaehler=16 then

  ratte\dinges_var=millisecs()

endif


Der Zähler erhöt sich und wird dann zu 17 es muss also heißen
Code: [AUSKLAPPEN]

if ratte\zaehler=16 then

  ratte\dinges_var=millisecs()
  ratte\zaehler=0

endif




Grüße
M-Soft Studios Mit selbst gemachtem Forum!!!
Unbequem lebt's sich schwer.
Musik macht erst Spaß, wenn man sie mit 2,8 facher Geschwindigkeit hört
Zuletzt bearbeitet von Smokie am Fr Jan 01, 1888 51:58 PM, insgesamt 1000-mal bearbeitet
 

Affenmann

BeitragDo, Jul 27, 2006 9:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok Danke für deine Antwort aber läuft troztdem noch nicht ;(

Will eigentlich dass halt eine zufalls Richtung bestimmt wird. Dann soll 16 Pixel in die Richtung gegangen werden und danach geht alles wieder von vorne los.
 

antome

!!! gesperrt !!!

BeitragDo, Jul 27, 2006 11:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Versuch mal Ratte/Zaehler auf null zu setzen ob das was bringt

Code: [AUSKLAPPEN]
If Ratte\Zaehler=16 Then
    Ratte\bewtimer1=MilliSecs()
    Ratte\Zaehler=0
EndIf
antome
 

Affenmann

BeitragDo, Jul 27, 2006 16:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Genau dass hat doch Smokie auch gesagt

Aber nein daran liegt es leider nicht : /
 

antome

!!! gesperrt !!!

BeitragDo, Jul 27, 2006 17:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Muss wohl an der Hitze liegen Embarassed Shocked was hab ich da gelesen Rolling Eyes
Da du nur wenig Code hier angibst ist es schwer das Problem genau zu erkennen
evtl. liegts an Ratte\bewtimer2 die dürfte ja ziemlich schnell
größer Ratte\bewtimer1+700 liegen und dann ändert es dauernd die Richtung
Code: [AUSKLAPPEN]

Ratte\bewtimer2+700<Ratte\bewtimer1


evtl. diese Variable in einem bestimmte Interval neu initialisieren.
antome
 

Affenmann

BeitragDo, Jul 27, 2006 20:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Ha ich habs geschafft Smile


Hier die Lösung
Code: [AUSKLAPPEN]

For ratte.monster = Each monster
If Ratte\Zaehler=0 Then
ratte\Bewrichtung=Rnd(1,4)
EndIf

If Ratte\bewtimer2+500<Ratte\bewtimer1 And ratte\Bewrichtung=1 Then
Ratte\gelaufenx=Ratte\gelaufenx+1
Ratte\Zaehler=Ratte\Zaehler+1
If Ratte\Zaehler=32 Then
Ratte\bewtimer2=MilliSecs()
Ratte\Zaehler=0
EndIf
EndIf

If Ratte\bewtimer2+500<Ratte\bewtimer1 And ratte\Bewrichtung=2 Then
Ratte\gelaufenx=Ratte\gelaufenx-1
Ratte\Zaehler=Ratte\Zaehler+1
If Ratte\Zaehler=32 Then
Ratte\bewtimer2=MilliSecs()
Ratte\Zaehler=0
EndIf
EndIf

If Ratte\bewtimer2+500<Ratte\bewtimer1 And ratte\Bewrichtung=3 Then
Ratte\gelaufeny=Ratte\gelaufeny+1
Ratte\Zaehler=Ratte\Zaehler+1
If Ratte\Zaehler=32 Then
Ratte\bewtimer2=MilliSecs()
Ratte\Zaehler=0
EndIf
EndIf

If Ratte\bewtimer2+500<Ratte\bewtimer1 And ratte\Bewrichtung=4 Then
Ratte\gelaufeny=Ratte\gelaufeny-1
Ratte\Zaehler=Ratte\Zaehler+1
If Ratte\Zaehler=32 Then
Ratte\bewtimer2=MilliSecs()
Ratte\Zaehler=0
EndIf
EndIf
Next

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group