problem mit steuerung
Übersicht

hitokiriBetreff: problem mit steuerung |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
also das sind die variablen
[syntax="bb"] Const fightermaxforward# =5 Const fightermaxbackward# =-4;negative value! Const fightermaxup# =-4;negative value! Const fightermaxdown# =4 Const fighterforwardstep# =0.25 Const fighterbackwardstep# =-0.25;negative value! Const fighterupstep# =-0.25;negative value! Const fighterdownstep# =0.25 Global bulletcount2 Global aliencount2 Const leveloutspeed#=0.15 [/syntax] bewegung ist nur in 4 dimensionen möglich und das "ausbalancieren" auf 0 ist beim normalen flug in die vier richtung auch möglich, durch geschicktes drücken dann auch fast 16 dimensionen steuerung möglich. jetzt hatte ich etwas ähnliches geschrieben um das schiff langsam auszubremsen wenn es auf den bildschirmrand zugeht aber was ich auch versucht habe, entweder gab es a: wirklichen bouncing effekt b: das schiff ist einfach über die edges rausgeflogen und es gab nen image doesn't exist error oder c: das schiff ist am bildschirmrand festgeklebt und liess sich dann nur noch in 2 dimensionen steuern. ich hatte erst gedacht dass es vielleicht daran liegt dass ich manche variablen nicht als float deklariert hatte aber selbst bei angabe der bildschirmrand werte als float, so dass ein step ihn über den "threshold" bringen würde ist er kleben geblieben. vorschläge ? |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dazu wärs nicht schlecht wenn wir den entsprechenden Code haben, mit den paar Konstanten da oben läßt sich nur raten ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
hitokiri |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ups ![]() Code: [AUSKLAPPEN] If KeyDown(key_right) And fighterxspeed < fightermaxforward Then
If fighterx < screenwidth*0.8 Then fighterxspeed=fighterxspeed+fighterforwardstep EndIf If fighteryspeed < 0 Then fighteryspeed=fighteryspeed+leveloutspeed ElseIf fighteryspeed > 0 Then fighteryspeed=fighteryspeed-leveloutspeed EndIf ElseIf KeyDown(key_left) And fighterxspeed > fightermaxbackward Then If fighterx > screenwidth/8 Then fighterxspeed=fighterxspeed+fighterbackwardstep EndIf If fighteryspeed < 0 Then fighteryspeed=fighteryspeed+leveloutspeed ElseIf fighteryspeed > 0 Then fighteryspeed=fighteryspeed-leveloutspeed EndIf ElseIf KeyDown(key_up) And fighteryspeed > fightermaxup Then If fightery > screenheight/8 Then fighteryspeed=fighteryspeed+fighterupstep EndIf If fighterxspeed < 0 Then fighterxspeed = fighterxspeed+leveloutspeed ElseIf fighterxspeed > 0 Then fighterxspeed=fighterxspeed - leveloutspeed EndIf ElseIf KeyDown(key_down) And fighteryspeed < fightermaxdown Then If fightery < screenheight*0.8 Then fighteryspeed=fighteryspeed+fighterdownstep EndIf If fighterxspeed < 0 Then fighterxspeed = fighterxspeed+leveloutspeed ElseIf fighterxspeed > 0 Then fighterxspeed=fighterxspeed - leveloutspeed EndIf Else If fighterxspeed < 0 Then fighterxspeed = fighterxspeed+leveloutspeed ElseIf fighterxspeed > 0 Then fighterxspeed=fighterxspeed - leveloutspeed EndIf If fighteryspeed < 0 Then fighteryspeed=fighteryspeed+leveloutspeed ElseIf fighteryspeed > 0 Then fighteryspeed=fighteryspeed-leveloutspeed EndIf EndIf fighterx=fighterx+fighterxspeed fightery=fightery+fighteryspeed ich hatte es nun schon auf verschiedene weisen probiert, aber wie immer, entweder abrupter stop oder am rand hängen bleiben oder drüber hinausschiessen. den abrupten stopp kann ich mir erklären, das darüber hinausschiessen auch irgendwo, aber das am rand kleben bleiben kapier ich einfach nich. also so schiesst er natürlich über den rand hinaus. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group