jump'n'run
Übersicht

zwerchnaseBetreff: jump'n'run |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich versuche zur Zeit ein jump'n'run-game zu schreiben, hab aber noch nicht soo viel Erfahrung mit Blitz Basic und kriege das springen nicht so richtig hin ![]() ![]() Kann mir jemand helfen?? ![]() ![]() thx im voraus. Matthias ![]() |
||
greetz from zwerchnase |
![]() |
Abrexxes |
![]() Antworten mit Zitat ![]() |
---|---|---|
So nicht!
Code machen... Code geht net.... Code postenn..... und Wir helfen ![]() cu Linux |
||
zwerchnase |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
sry, bin neu hier, wusste net wie dat läuft ![]() code kommt gleich matthias ![]() |
||
greetz from zwerchnase |
zwerchnase |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
sry, bin neu hier, wusste net wie dat läuft ![]() code kommt gleich matthias ![]() |
||
greetz from zwerchnase |
zwerchnase |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Graphics 640,480,32,1
.gameloop player01=LoadImage("graphics/player01.bmp") feld01=LoadImage("graphics/feld01.bmp") MaskImage player01,255,255,255 y=420 feldy=460 Repeat Cls For feldx=0 To 640 Step 20 DrawImage feld01,feldx,feldy Next DrawImage player01,x,y If KeyDown(205)=1 Then x=x+10 If KeyDown(203)=1 Then x=x-10 If KeyDown(57)=1 Then y=y-10 Until KeyHit(1) End Also, das Bild wird um 10px nach oben verschoben, wenn die leertaste gedrückt wird, kommt aber nicht wieder runter, was ja auch logisch ist. Ich weiß aber nicht was ich schreiben muss, damit es wieder runter kommt ![]() Matthias ![]() |
||
greetz from zwerchnase |
![]() |
Lord_Vader |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du musst ne art schwerkraft erzeugen und mim timer halt immer son stück pro 50 ms runter oder so, weis zwar wies geht hab aber jez keine relationen jemals ausprobiert ![]() |
||
![]() |
Abrexxes |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dein Code ist nicht einfach nachzuvollziehen. hier mal 2 neue Zeilen um das Prinzip zu zeigen (weis nicht ob das so geht)
Code: [AUSKLAPPEN] Graphics 640,480,32,1 .gameloop player01=LoadImage("graphics/player01.bmp") feld01=LoadImage("graphics/feld01.bmp") MaskImage player01,255,255,255 y=420 feldy=460 While Not KeyHit(1) Cls For feldx=0 To 640 Step 20 DrawImage feld01,feldx,feldy Next DrawImage player01,x,y if y <400 then y = 400 ;neu Spieler auf minimaler höhe halten If KeyDown(205)=1 Then x=x+10 If KeyDown(203)=1 Then x=x-10 If KeyDown(57)=1 Then y=y-10 If y >400 then y= y +2 ;neu wenn Spieler höher als minimal dann runter wend End cu Linux |
||
zwerchnase |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@linux
klappt nich, erst versinkt die spielfigur im boden, dann wenn ich die leertaste drücke kommt sie wieder hoch ![]() matthias |
||
greetz from zwerchnase |
![]() |
Lord_Vader |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn deine kolisionsabfrage richtig is dürfte das net passieren :\ | ||
![]() |
Abrexxes |
![]() Antworten mit Zitat ![]() |
---|---|---|
das ist mir schon klar das das net auf anhieb geht,ich wollte dier nur das Prinzip zeigen ,du musst die Zahlen anpassen.Ansonsten bräuchte ich deine Grafiken um das auszutesten.
Wie gesagt dein Art diese zu machen ist nicht gerade meine Art ,ich habe schwierigkeiten deinen Code ohne zu testen zu verstehen. cu Linux PS:Lade dir doch mal auf http://www.mapeditor.de.vu die freeversion runter,da ist ein Beispiel von Ediothiol dabei (Code) das kanzt du dir mal angucken (insbesondere was LORD meint mit Collision) |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] if keyhit(57) and jump=0 then jump=1 if jump=1 then starty=y: jump=2 If jump=2 and y > starty-10 then y=y-1 else jump=3 end if If jump=3 and y < starty then y=y+1 else jump=0 end if Sollte gehen, wenn auch sehr unhübsch (noch keine "geschwungene" Sprungkurve) |
||
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 |
zwerchnase |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
thx, geht.
es ist zwar noch nicht ganz so, wie ich das haben wollte, aber da kann ich ja nochn bisschen dran rum feilen. nochmal thx, an alle die geholfen haben ![]() matthias |
||
greetz from zwerchnase |
zwerchnase |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@blade
ist das And y > starty-10 in der dritten zeile nicht überflüssig?? wenn starty gleich y ist, ist y doch sowieso größer als starty-10! ich habs mal weggelassen, und es funktioniert immernoch genauso wie vorher. Matthias |
||
greetz from zwerchnase |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
wundert mich. theoretisch sollte dann die Figur ins unendliche springen, da ja starty gleichbleibt, y aber konstant kleiner wird mit jedem Hauptschleifendurchlauf.
(die starty-10 ist ja die Sprunghöhe). Poste mal deinen ganzen (geänderten) Code, vielleicht regelt sich das woanders. |
||
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 |
zwerchnase |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Graphics 640,480,32,1
.gameloop player01=LoadImage("graphics/player01.bmp") feld01=LoadImage("graphics/feld01.bmp") MaskImage player01,255,255,255 y=420 feldy=460 Repeat Cls For feldx=0 To 640 Step 20 DrawImage feld01,feldx,feldy Next DrawImage player01,x,y If KeyDown(205)=1 Then x=x+10 If KeyDown(203)=1 Then x=x-10 If KeyHit(57) And jump=0 Then jump=1 If jump=1 Then starty=y: jump=2 If jump=2 Then y=y-10 Else jump=3 End If If jump=3 And y < starty Then y=y+1 Else jump=0 End If Until KeyHit(1) End Aber die sprunghöhe ist doch eigentlich das, y=y-10 unter if jump=2, oder nich!? matthias |
||
greetz from zwerchnase |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
nein ist es nicht. das ist der einzelne schritt in dehm der sprung ausgeführt wird. und da die bedingung jump=2 niemals unwahr wird, springt er aus dem Bild raus und hört nie auf.
Der code kann so nicht wirklich funktionieren. |
||
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 |
zwerchnase |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
funktioniert aber. ![]() Matthias |
||
greetz from zwerchnase |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Uppe mal deine Gfx. dann probier ichs mal selber.
wenn du sie nit uppen kannst, gib mir die Ausmasse damit ich mit dummies arbeiten kann. des intressiert mich nun. ach ja: bitte benutz (wg. der Besseren Übersicht) die Codetags wenn du Code postest. also: "code" drücken, code posten nommal "code"-button drücken. |
||
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 |
zwerchnase |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
kein problem
feld01 ist 20*20px und player01 34*35px matthias |
||
greetz from zwerchnase |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Da sieht man mal was passiert wenn man code in 3 min. hinsaut. deines funktioniert tatsächlich (da bb über das else aus mir unverständlichen gründen auf jump=3 springt.)
Werde das mal weiter analysieren. Faszinierend Ôô. EDIT: Es lag tatsächlich an den "Else". Hab sie ersetzt und nun geht mein Code einwandfrei. hätte auch grad mal noch Doublebuffering reingebaut (war ja ein unerträgliches geflimmere). Sonst as-it-was: Code: [AUSKLAPPEN] Graphics 640,480,32,1
SetBuffer BackBuffer() .gameloop player01=LoadImage("graphics/player01.bmp") feld01=LoadImage("graphics/feld01.bmp") MaskImage player01,255,255,255 y=420 feldy=460 Repeat Cls For feldx=0 To 640 Step 20 DrawImage feld01,feldx,feldy ;Rect feldx,feldy,20,20 Next DrawImage player01,x,y ;Color 123,123,234 ;Rect x,y,34,35,1 ;Color 255,255,255 If KeyDown(205)=1 Then x=x+10 If KeyDown(203)=1 Then x=x-10 If KeyHit(57) And jump=0 Then jump=1 If jump=1 Then starty=y: jump=2 End If If jump=2 And y>(starty-10) Then y=y-1 End If If jump=2 And y=starty-10 Then jump=3 End If If jump=3 And y < starty Then y=y+1 End If If jump=3 And y=starty Then jump=0 End If Flip Until KeyHit(1) End |
||
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 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group