Speed für ball,nur wie ?! _-_
Übersicht

![]() |
Rob_Betreff: Speed für ball,nur wie ?! _-_ |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
Hier bin daran so ein kleines spiel zumachen um mein wissen auszupeppen mit types und so, das ist ein kleines noch nicht fertig spiel. Ich bekomme es nicht hin das sich die bälle nach 10 punkten im score schneller bewegen. Code: [AUSKLAPPEN] Graphics 640,480
SetBuffer BackBuffer() Type balls Field x Field y Field nx Field ny Field speed Field r Field g Field b End Type For b = 1 To 10 ball.balls = New balls ball\x = Rnd(0,640) ball\y = Rnd(0,480) ball\nx= Rnd(0,640) ball\ny= Rnd(0,480) ball\speed = 0 ball\r = Rnd(255) ball\g = Rnd(255) ball\b = Rnd(255) Next While Not KeyHit(1) Cls If MilliSecs () > scoretimer + 500 score = score +1 scoretimer = MilliSecs () EndIf For ball = Each balls Color ball\r,ball\g,ball\b If ball\nx > ball\x Then ball\x = ball\x +ball\speed If ball\nx < ball\x Then ball\x = ball\x -ball\speed If ball\ny > ball\y Then ball\y = ball\y +ball\speed If ball\ny < ball\y Then ball\y = ball\y -ball\speed If ball\nx = ball\x Then ball\nx = Rnd(0,640) + ball\speed If ball\ny = ball\y Then ball\ny = Rnd(0,480) - ball\speed If score = 1 Then ball\speed = 1 If score = 10 Then ball\speed =+2 Oval ball\x,ball\y,30,30,1 Next Text 10,10,"Score: "+score Flip Wend End Bei "If score = 1 Then ball\speed = 1" laufen die bälle normal, aber wenn der ball speed bei 2 ist sind sie schneller, aber bleiben stehen nach einer kurzen weile. (könnt ihr mir, die profis unter euch sagen ob der code gut aufgebaut ist?) Thx grüsse Rob_ |
||
AMD Athlon 64 3500+ | Infineon 1 GB DDR RAM | nVidia Geforce 7800 GTX |
![]() |
soli |
![]() Antworten mit Zitat ![]() |
---|---|---|
ball\nx und ball\ny
sind bei dir keine Aussenbegrenzungen sondern liegen in der Mitte, darum wird irgendwann der Speed zuerst addiert und dann sofort wieder subrahiert. soli |
||
solitaire |
![]() |
Rob_ |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, nx sollte die "neue, x" koordinate sein.
Damit sich die punkte random bewegen, das ich doch richtig? Oder brauche ich nicht extra noch zwei werte dafür ? ![]() Das gibt mir echt zu denken! ![]() |
||
AMD Athlon 64 3500+ | Infineon 1 GB DDR RAM | nVidia Geforce 7800 GTX |
Edlothiol |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] If score = 10 Then ball\speed =+2
Ich denk mal du wolltest da sowas wie += machen, das gibts in BB nicht.Code: [AUSKLAPPEN] If score = 10 Then ball\speed = ball\speed + 2 Oder, wenn du immer alle 10 Punkte die Speederhöhung haben willst:Code: [AUSKLAPPEN] If score Mod 10 = 0 Then ball\speed = ball\speed + 2
Ansonsten sollte das schon stimmen. |
||
![]() |
Bigmichi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das Problem war an den Ecke gehen du hast ihm +1 und dan direkt -1 gegeben wassen das für sinn ? ![]() Woltl mich nun damit net ärgern un hab so umgeschrieben ddas er direkten weg geht ![]() Hab auch geöändert das wenn über 10 imemr ein wenig schneller wird ![]() Ab 50 oder so entstehen witzige Bildas ![]() Code: [AUSKLAPPEN] Graphics 640,480
SetBuffer BackBuffer() Type balls Field x Field y Field nx Field ny Field speed Field r Field g Field b End Type For b = 1 To 10 ball.balls = New balls ball\x = Rnd(0,640) ball\y = Rnd(0,480) ball\nx= Rnd(0,640) ball\ny= Rnd(0,480) ball\speed = 0 ball\r = Rnd(255) ball\g = Rnd(255) ball\b = Rnd(255) Next While Not KeyHit(1) Cls IF Timer + 500 < MILLISECS() THEN score = score +1 For ball = Each balls IF score = 1 Then ball\speed = 1 IF score > 10 Then ball\speed = ball\speed + 1 NEXT Timer = MILLISECS() END IF For ball = EACH balls Color ball\r,ball\g,ball\b x2# = Ball\nx y2# = Ball\ny eckx# = Ball\X ecky# = y2# schritt# = Sqr((eckx# - x2#)^2+(ecky# - Ball\Y)^2)/Ball\Speed IF schritt# < 1 Then schritt# = 1 schiebx# = (x2# - eckx#)/schritt# schieby# = (Ball\Y - ecky#)/schritt# Ball\X = Ball\X + schiebx# Ball\Y = Ball\Y - schieby# If ball\nx = ball\x Then ball\nx = Rnd(0,640) + ball\speed If ball\ny = ball\y Then ball\ny = Rnd(0,480) - ball\speed Oval ball\x,ball\y,30,30,1 Next Text 10,10,"Score: "+score Flip Wend End |
||
![]() |
Bob |
![]() Antworten mit Zitat ![]() |
---|---|---|
![]() ![]() Ist ja eine ähnliche Problematik. Siehe auch https://www.blitzforum.de/viewtopic.php?t=4688 |
||
![]() |
Rob_ |
![]() Antworten mit Zitat ![]() |
---|---|---|
hey jau! gut das hilft mir sicher weiter THX
Rob_ |
||
AMD Athlon 64 3500+ | Infineon 1 GB DDR RAM | nVidia Geforce 7800 GTX |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group