zufällige bewegung von Rechteck [Erledigt]
Übersicht

![]() |
MikeDeeBetreff: zufällige bewegung von Rechteck [Erledigt] |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hab lange nicht mehr weiter gemacht und somit einiges wieder vergessen, jedenfalls soll in dem Code ein Rechteck sein, welches sich zufällig bewegt, was es nicht macht. Wo ist der Fehler?
p.s. da steht überall plot, weil das rect ursprünglich ein plot war ![]() Code: [AUSKLAPPEN] Graphics 800,600,0,2
SetBuffer BackBuffer() SeedRnd MilliSecs() plotx = 400 ploty = 300 Repeat Cls If MilliSecs()-plottimer>500 Then plotrichtung=Rand(0,3) plottimer=MilliSecs() EndIf If plotrichtung = 0 Then plotx=0 ploty=+10 ElseIf plotrichtung = 1 Then plotx=0 ploty=-10 ElseIf plotrichtung = 2 Then plotx=+10 ploty=0 ElseIf plotrichtung = 3 Then plotx=-10 ploty=0 EndIf If plotx > 799 Then plotx = 0 ElseIf plotx < 0 Then plotx = 799 ElseIf ploty > 599 Then ploty = 0 ElseIf ploty < 0 Then ploty = 599 EndIf Color 255,255,255 Rect plotx,ploty,10,10 Until KeyHit(1) End |
||
Nicht wenige benutzen die Anonymität des Internets um berühmt zu werden. |
- Zuletzt bearbeitet von MikeDee am Fr, Apr 17, 2009 18:28, insgesamt 2-mal bearbeitet
![]() |
Pummelie |
![]() Antworten mit Zitat ![]() |
---|---|---|
flip fehlt
So muss es sein: Code: [AUSKLAPPEN] Graphics 800,600,0,2 SetBuffer BackBuffer() SeedRnd MilliSecs() plotx = 400 ploty = 300 Repeat Cls If MilliSecs()-plottimer>500 Then plotrichtung=Rand(0,3) plottimer=MilliSecs() EndIf If plotrichtung = 0 Then plotx=0 ploty=+10 ElseIf plotrichtung = 1 Then plotx=0 ploty=-10 ElseIf plotrichtung = 2 Then plotx=+10 ploty=0 ElseIf plotrichtung = 3 Then plotx=-10 ploty=0 EndIf If plotx > 799 Then plotx = 0 ElseIf plotx < 0 Then plotx = 799 ElseIf ploty > 599 Then ploty = 0 ElseIf ploty < 0 Then ploty = 599 EndIf Color 255,255,255 Rect plotx,ploty,10,10 flip Until KeyHit(1) End |
||
It's done when it's done. |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du hast Flip vergessen. Ansonsten finde ich die ganzen If-Abfragen schon etwas umständlich. Schneller und etwas übersichtlicher geht die Abfrage mit ein und der selben Variable per Select![]() Code: [AUSKLAPPEN] Graphics 800,600,0,2
SetBuffer BackBuffer() SeedRnd MilliSecs() Local Timer=CreateTimer(60) Local PlotX=40 Local PlotY=30 Local MS,PlotTimer Local PlotRichtung Repeat Cls MS=MilliSecs() If MS-PlotTimer>500 Then PlotRichtung=Rand(0,3) PlotTimer=MS EndIf Select PlotRichtung Case 0 PlotY=PlotY+1 Case 1 PlotY=PlotY-1 Case 2 PlotX=PlotX+1 Case 3 PlotX=PlotX-1 End Select PlotX=(PlotX+80) Mod 80 PlotY=(PlotY+60) Mod 60 Color 255,255,255 Rect PlotX*10,PlotY*10,10,10 WaitTimer Timer Flip 0 Until KeyHit(1) End |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
MikeDee |
![]() Antworten mit Zitat ![]() |
---|---|---|
ach ja, des wars, danke
2. Problem: wie mache ich, dass sich das Rechteck "freier" bewegt und warum startet es nicht in der mitte? |
||
Nicht wenige benutzen die Anonymität des Internets um berühmt zu werden. |
![]() |
Goodjee |
![]() Antworten mit Zitat ![]() |
---|---|---|
die position die übergeben wird ist die linke obere ecke des rects, also musst du noch ein bischen abziehen damit es in der mitte gehandled wird | ||
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/ |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Weil du die Positionsangaben nicht addierst, sondern nur immer komplett neu setzt.
Code: [AUSKLAPPEN] If plotrichtung = 0 Then
plotx=0 ploty=+10 |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
MikeDee |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] If plotrichtung = 0 Then plotx=plotx +0 ploty=ploty+10 ok, so gehts. Das wars dann für heute, morgen arbeite ich mich warscheinlich in Types ein |
||
Nicht wenige benutzen die Anonymität des Internets um berühmt zu werden. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group