Alternative Sprungmöglichkeit ohne Sinus

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

 

Blitzkrieg Bop

Betreff: Alternative Sprungmöglichkeit ohne Sinus

BeitragMi, Mai 19, 2004 12:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Hoi!
Ich weiß zwar nicht ob es viel nutzt, aber ich habe mal eine alternative Sprungmöglichkeit programmiert, ohne das man Sinus oder Ähnliches anwenden muss. Das Prog kann man sicher noch verbessern, das man zum Beispiel nur so lange springt, wie die Taste gedrückt wird, aber das dürfte dann net alzu schwer werden.

BlitzBasic: [AUSKLAPPEN]

Graphics 800,600,16,2
SetBuffer BackBuffer()
AppTitle "Alternative Sprungmöglichkeit ohne Sinus"
Const hoch = 200 , links = 203 , rechts = 205 , runter = 208
Global x_neu,y_neu,berechnung
Global steigen,fallen
Global speed# = 2
Global speed2# = 2


Repeat
Cls
lenkung()
begrenzung()
sprung()
malen()
Flip
Until KeyHit(1)



Function lenkung()
If KeyDown(rechts)
x_neu = x_neu + 2
EndIf
If KeyDown(links)
x_neu = x_neu - 2
EndIf
End Function


Function begrenzung()
If x_neu < -400
x_neu = -400
EndIf
If x_neu > 350
x_neu = 350
EndIf
If y_neu > 0
y_neu = 0
EndIf
End Function

Function sprung()
If KeyHit(hoch) And y_neu => 0
speed2# = 0
speed# = 2
fallen = 0
steigen = 1
EndIf
If steigen = 1
y_neu = y_neu - speed#
EndIf
;Berechnung der Maximalen hoehe:
If berechnung - (y_neu) = 200
fallen = 1
EndIf
If fallen = 1
speed# = 0
speed2# = 2
y_neu = y_neu + speed2#
EndIf
End Function

Function malen()
Color 129,129,129
Rect (800/2)+x_neu,550+y_neu,50,50
End Function


MFG
~ Hey Ho Let's Go ~

sbrog

BeitragMi, Mai 19, 2004 13:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Möglichkeit ist für mich ziemlich Primitiv, da der Sprung viel zu Kantig ist.
Zwar könnte man auf diese Weise auch Kurven proggen, aber mit Sin und Cos gehts besser.

Auch können veränderungen in der Sprungweite, höhe mit sin und cos viel einfacher gemacht werden
 

Blitzkrieg Bop

BeitragMi, Mai 19, 2004 13:41
Antworten mit Zitat
Benutzer-Profile anzeigen
jo, stimmt schon, sollten auch nur als anschaulichkeit oder ähnliches angesehen werden
~ Hey Ho Let's Go ~

Markus2

BeitragMi, Mai 19, 2004 19:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Für nen Jump & Run hätte ich auch kein Sin/Cos benutzt .
Aber auch keinen linearen Sprung weil das dreieckig ist .
Irgendwie fehlt da die Beschleunigung beim rauf runter .

Erinnert mich an Snoopy auf dem C64 Smile
 

Kekskiller

BeitragDo, Mai 20, 2004 20:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm, naja, da kenn ich bessere und kleinere Wege nur um diese Funktion
nachzubauen. Mach es besser mit Anhaltspunkten, wo das Programm weiß,
an welchen Stellen es wieviel pixelprozente oder so nach oben muss, und
auch den Speed anhabt.
 

Silbersurfer

BeitragSo, Jun 20, 2004 20:31
Antworten mit Zitat
Benutzer-Profile anzeigen
hi leute,

Markus2

Zitat:
Für nen Jump & Run hätte ich auch kein Sin/Cos benutzt .


genau Ich auch nicht, außerdem ist die obere Variante in Run&Jump nur
beding einsetztbar genau wie cos/sin besser ist es mit Gravitations Variabel zu machen z.b wie hier

BlitzBasic: [AUSKLAPPEN]
Graphics 800,600,16,2 
SetBuffer BackBuffer()

Const hoch = 200 , links = 203 , rechts = 205 , runter = 208



gravitation#=.1
speedy#=0
speedx#=0
Repeat
Cls
Rect x#,y#,40,40,1
y=y-speedy
x=x-speedx
speedy#=speedy#-gravitation#
If y>560 Then y=560

If KeyHit(hoch)
speedy=5
EndIf
If KeyDown(rechts)
x=x+2
EndIf
If KeyDown(links)
x=x-2
EndIf

Flip
Until KeyHit(1)


Gruss

Silbersurfer
-------------------------------------------------------
XP 2000+ 512DDR Radeon 9800 XL 340GB HD
Hompage : http://home.arcor.de/silbersurfer01/
Is Bob engine http://home.arcor.de/silbersur.../Isbob.zip
 

Blitzkrieg Bop

BeitragSo, Jun 20, 2004 20:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Jopp! Stimmt natürlich...ich hab mal noch ne Version rausgekramt, die aber so ziemlich identisch ist:

BlitzBasic: [AUSKLAPPEN]

Graphics 800,600,16,2
SetBuffer BackBuffer()
Global links = 203, runter = 208, rechts = 205, hoch = 200, space = 57
Global jump = False
Global player_temp_y# = 50
version$ = "Sprungsimulation"
AppTitle ""+version$

;-------------
Type spieler
Field x,y
End Type
;-------------


s.spieler = New spieler
s\x = 50
s\y = 540


Repeat
Cls
Spieler()
Bewegung(s.spieler)
Allgemein(s.spieler)
Begrenzungen(s.spieler)
Springen(s.spieler)
Flip
Until KeyHit(1) : End


Function Spieler()
For s.spieler = Each spieler
Color 129,129,129
Rect s\x,s\y,50,50
Next
End Function

Function Bewegung(s.spieler)
If KeyDown(links)
s\x = s\x - 3
EndIf

If KeyDown(rechts)
s\x = s\x + 3
EndIf
End Function


Function Allgemein(s.spieler)
Color 255,128,0
Rect 0,590,800,3 ;Boden

Text 0,5,"X-Position des Spielers:"+s\x
Text 0,55,"Y-Poition des Spielers:"+s\y
End Function


Function Begrenzungen(s.spieler)
If s\x <= 0
s\x = 0
EndIf

If s\x => 750
s\x = 750
EndIf

If s\y => 540
s\y = 540
jump= False
EndIf

If s\y <= 0
s\y = 0
EndIf
End Function


Function Springen(s.spieler)
If KeyHit(space)
If jump = False
jump = True
player_temp_y# = 15
EndIf
EndIf


If jump = True Then
Player_temp_y# = Player_temp_y# - 0.33
s\y = s\y - Player_temp_y#
EndIf
End Function




~ Hey Ho Let's Go ~

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group