nächste Frage: Wie kriege ich so etwas wie einen Bremsweg?
Übersicht

HendyBetreff: nächste Frage: Wie kriege ich so etwas wie einen Bremsweg? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
![]() ich habmir gedacht so etwas wie wenn man langsam die geschwindigkeit reduziert aber ichweiss nicht wie ich das machen soll.... mein Code ist so: Code: [AUSKLAPPEN] Graphics 1024,768,16,1 SetBuffer BackBuffer() ;------------------- Global x#,y# Global geschwindigkeit=5 ;Spieler in allen winkeln speichern Dim player(359) TFormFilter 0 For winkel = 0 To 359 player(winkel)=LoadImage("player.bmp") RotateImage player(winkel),winkel MaskImage player(winkel),0,0,255 Next x=300 y=300 ;-----------------------------HAUPTSCHLEIFE-------------------------------- ;-------------------------------------------------------------------------- While Not KeyHit(1) If KeyDown(203) Then winkel= winkel -5 If KeyDown(205) Then winkel= winkel +5 If KeyDown(200) Then x=x + Cos(Winkel)*geschwindigkeit y=y + Sin(winkel)*geschwindigkeit EndIf If winkel > 359 Then winkel = 0 If winkel < 0 Then winkel = 359 If x > 1023 Then x = 1 If x < 1 Then x = 1023 If y > 767 Then y = 1 If y < 1 Then y = 767 MidHandle player(winkel) DrawImage player(winkel),x,y Flip Cls Wend End |
||
![]() ![]() ![]() |
- Zuletzt bearbeitet von Hendy am So, Feb 25, 2007 16:58, insgesamt einmal bearbeitet
![]() |
the FR3AK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mach einfach wenn gebremst wird z.B. Geschwindigkeit=Geschwindigkeit-1
dann wird das Auto immer langsamer ![]() If Geschwindigkeit=<0 then Geschwindigkeit=0 |
||
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich mach auch grad sowas, bin aber zu faul, jetzt alles der Reihe nach zu erklären. Nur soviel: Hast du in Physik schon was über Weg - Geschwindigkeit - Beschleunigung gehört? Sind ganz einfache Formeln, einfach in BB schreiben! | ||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
C0der |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] speed = Input("speed (px/sec): ")
void = Input("Enter zum Bremsen .. ") bremsen = 1 speed_left = speed While Not KeyHit(1) If speed_left > 0 Then speed_left = speed_left - bremsen Print "Speed: " + speed_left bremsen = bremsen + 10 Wend |
||
- Zuletzt bearbeitet von C0der am So, Feb 25, 2007 16:49, insgesamt 2-mal bearbeitet
Hendy |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@Eingeproggt ich bin 8 Klasse Realschule und 14 Jahre alt.... | ||
![]() ![]() ![]() |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
zB so:
Code: [AUSKLAPPEN] Graphics 1024,768,16,1
SetBuffer BackBuffer() ;Types Type schuss Field schuss_x Field schuss_y End Type ;------------------- Global x#=300,y#=300 Global geschwindigkeit#=5 ;Spieler in allen winkeln speichern Dim player(359) TFormFilter 0 For winkel = 0 To 359 player(winkel)=LoadImage("data\white.png") RotateImage player(winkel),winkel ;MaskImage player(winkel),0,0,255 Text 0,0,Int(winkel/3.6)+" %" Flip Cls Next ;-----------------------------HAUPTSCHLEIFE-------------------------------- ;-------------------------------------------------------------------------- While Not KeyHit(1) If KeyDown(203) Then winkel=winkel-geschwindigkeit/4.0 If KeyDown(205) Then winkel=winkel+geschwindigkeit/4.0 If KeyDown(200) Then geschwindigkeit=geschwindigkeit+1 geschwindigkeit=geschwindigkeit*.95 x=x + Cos(Winkel)*geschwindigkeit y=y + Sin(Winkel)*geschwindigkeit If winkel > 359 Then winkel = 0 If winkel < 0 Then winkel = 359 If x > 1023 Then x = 1 If x < 1 Then x = 1023 If y > 767 Then y = 1 If y < 1 Then y = 767 MidHandle player(winkel) DrawImage player(winkel),x,y Flip Cls Wend End |
||
- Zuletzt bearbeitet von hectic am So, Feb 25, 2007 16:51, insgesamt einmal bearbeitet
![]() |
the FR3AK |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Hendy ich auch ![]() Programmieren hat nix mit dem Alter zu tun! |
||
Hendy |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Er hat mir über Physik was erzählt....
hab ich nicht verstanden weil ich´s noch nicht hatte... |
||
![]() ![]() ![]() |
Todeskop |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
also ich mach das miter beschleunigung ganz einfach immer so :
Code: [AUSKLAPPEN] If KeyDown(17)=1 And speed#<0.02 Then speed#=speed#+0.0002
If speed>0 Then speed=speed-0.0001 If KeyDown(31)=1 And speed#>-0.02 Then speed#=speed#-0.0002 If speed<0 Then speed=speed+0.0001 eigentlich ganz simpel ![]() |
||
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
@ hectic: Ja, dein Code ist recht gut nur einen gravierenden Fehler hat er:
Der Wendekreis wird umso größer, je langsamer man ist? Versuch mal mit 100km/h um ne Kurve zu fahren und dann versuchs mit 10km/h. Was ist leichter? ![]() |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Drehung habe ich direkt mit der Geschwindigkeit gekoppelt. Somit ist der Wendekreis immer gleich, egal welche Geschwindigkeit man hat. Falls du aber driften meinst, so ist das ein ganz anderes Kapitel. Wenn du ein Panzer simulieren willst, so ist dein erster Code sicherlich der richtigere, da man da auch im Stand drehen konnte.
edit1: ok, jetzt weiß ich was du meinst. Wenn man immer zwischendurch stehen bleibt, so wird am Ende der Wendekreis tatsächlich größer. Das kommt daher, weil winkel keine float ist. |
||
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hendy hat Folgendes geschrieben: @Eingeproggt ich bin 8 Klasse Realschule und 14 Jahre alt....
Gymnasium, 10te Klasse und auch 14 Jahre alt. (Allerdings nur noch bis zum 4. März ![]() Also Geschwindigkeitsformeln braucht man da eher, wenn man eine komplexe und realitätsnahe Physik möchte. Ich denke, für deine Zwecke reichen auch erstmal einfache Sachen. Du hast ja grundlegend eine Geschwindigkeit, die dein Objekt in eine gewisse Richtung bewegt. Am besten, du machst Variablen, die die Geschwindigkeit in eine Richtung ansagen. Diese teilst du einfach in jedem Vorgang durch eine gewisse Zahl. Dann addierst du die Geschwindigkeit bei der Kraft in x Richtung mit dem Sinus des Winkels, in den dein Auto schaut. Bei z mit dem Cosinus. Hört sich jetzt vielleicht kompliziert an, ist aber eigentlich nicht schwer. Siehe Wikipedia ![]() |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
Todeskop |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
booaaa scheiße steptiger wie viele klassen hasst du übersprungen und dat auchnoch auf dem gymi ![]() |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wem es nach Wissen dürstet der findet Wege es zu erreichen. Dazu muss man nichts überspringen sondern sich eben weiterbilden. | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
Absolut richtig. (abgesehen davon, todeskop: ein mal hochgestuft wurden)
Ansätze zu Winkelfunktionen findest du sicherlich in der Wikipedia. |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
HendyBetreff: Lösung!!(mehr oda weniger) |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das ganze hab ich jetzt so gelöst:
Code: [AUSKLAPPEN] Graphics 1024,768,16,1 SetBuffer BackBuffer() Global geschwindigkeit# Global x#=300,y#=300 ;Spieler in allen winkeln speichern Dim player(359) TFormFilter 0 For winkel# = 0 To 359 player(winkel#)=LoadImage("player.bmp") RotateImage player(winkel#),winkel# ;MaskImage player(winkel),0,0,255 Flip Cls Next ;-----------------------------HAUPTSCHLEIFE-------------------------------- ;-------------------------------------------------------------------------- While Not KeyHit(1) If KeyDown(203) Then winkel#=winkel#-geschwindigkeit/3 If KeyDown(205) Then winkel#=winkel#+geschwindigkeit/3 If KeyDown(200) Then geschwindigkeit=geschwindigkeit+.6 If KeyDown(208) Then geschwindigkeit=geschwindigkeit-.5 geschwindigkeit=geschwindigkeit*.99 x=x + Cos(Winkel#)*geschwindigkeit y=y + Sin(Winkel#)*geschwindigkeit If geschwindigkeit> 100 Then geschwindigkeit= 100 If geschwindigkeit< -50 Then geschwindigkeit= -50 Print geschwindigkeit If winkel# > 359 Then winkel# = 0 If winkel# < 0 Then winkel# = 359 If x > 1023 Then x= 1 If x < 1 Then x = 1023 If y > 767 Then y = 1 If y < 1 Then y = 767 MidHandle player(winkel#) DrawImage player(winkel#),x,y Flip Cls Wend End Gut oder Schlecht? .::Edit1::. Naja Auto ein bisi schnell aber einfach bei dieser Stelle: Code: [AUSKLAPPEN] If geschwindigkeit> 100 Then geschwindigkeit= 100 If geschwindigkeit< -50 Then geschwindigkeit= -50 die Hunderten durch 10 ersetzen und die 50er durch 5er |
||
![]() ![]() ![]() |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mir fallen grad nur folgende Punkte auf:
1. Formatiere mal dein Code 2. Anstelle ql:Print nehme mal ql:Text 3. Packe ql:MiddHandle gleich nach ql:RotateImage 4. Anstelle 'If winkel#...' kannst du es auch mit ql:Mod machen |
||
Hendy |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also das MOD wie es in der OH beschrieben ist raf ich nicht...![]() Danke für die Tips... ![]() |
||
![]() ![]() ![]() |
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ist ganz einfach.
Beispielsweise 14 Mod 3: Da wird 14 durch 3 dividiert, kommt 4 raus. Dann wird 14-3*4 gerechnet, das ergibt 2. und 14 mod 3 = 2. Alles klar? (Ob BB es genauso macht, wie ichs beschreiben hab, weiss ich nicht, aber so würds ich rechnen) |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
Hendy |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Eingeproggt hat Folgendes geschrieben: Alles klar? Nun ja.... ![]() .::EDIT1::. obwohl wenn man ein wenig darüber nachdenkt... ![]() |
||
![]() ![]() ![]() |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group