jump'n'run

Übersicht BlitzBasic Allgemein

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

 

zwerchnase

Betreff: jump'n'run

BeitragMo, Jul 05, 2004 13:57
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Crying or Very sad Crying or Very sad

Kann mir jemand helfen??

Rolling Eyes bittebittemach Rolling Eyes

thx im voraus.

Matthias Smile
greetz from zwerchnase

Abrexxes

BeitragMo, Jul 05, 2004 13:59
Antworten mit Zitat
Benutzer-Profile anzeigen
So nicht!

Code machen...
Code geht net....
Code postenn.....

und Wir helfen Wink

cu Linux
 

zwerchnase

BeitragMo, Jul 05, 2004 14:01
Antworten mit Zitat
Benutzer-Profile anzeigen
sry, bin neu hier, wusste net wie dat läuft Laughing
code kommt gleich

matthias Rolling Eyes
greetz from zwerchnase
 

zwerchnase

BeitragMo, Jul 05, 2004 14:02
Antworten mit Zitat
Benutzer-Profile anzeigen
sry, bin neu hier, wusste net wie dat läuft Laughing
code kommt gleich

matthias Rolling Eyes
greetz from zwerchnase
 

zwerchnase

BeitragMo, Jul 05, 2004 14:08
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Rolling Eyes .

Matthias Crying or Very sad
greetz from zwerchnase

Lord_Vader

BeitragMo, Jul 05, 2004 14:17
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Smile

Abrexxes

BeitragMo, Jul 05, 2004 14:20
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Jul 05, 2004 14:26
Antworten mit Zitat
Benutzer-Profile anzeigen
@linux
klappt nich, erst versinkt die spielfigur im boden, dann wenn ich die leertaste drücke kommt sie wieder hoch Sad

matthias
greetz from zwerchnase

Lord_Vader

BeitragMo, Jul 05, 2004 14:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn deine kolisionsabfrage richtig is dürfte das net passieren :\

Abrexxes

BeitragMo, Jul 05, 2004 14:29
Antworten mit Zitat
Benutzer-Profile anzeigen
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)

BladeRunner

Moderator

BeitragMo, Jul 05, 2004 14:33
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Jul 05, 2004 14:41
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Very Happy

matthias
greetz from zwerchnase
 

zwerchnase

BeitragMo, Jul 05, 2004 14:51
Antworten mit Zitat
Benutzer-Profile anzeigen
@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

BladeRunner

Moderator

BeitragMo, Jul 05, 2004 14:57
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Jul 05, 2004 15:01
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BladeRunner

Moderator

BeitragMo, Jul 05, 2004 15:05
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Jul 05, 2004 15:08
Antworten mit Zitat
Benutzer-Profile anzeigen
funktioniert aber. Laughing

Matthias
greetz from zwerchnase

BladeRunner

Moderator

BeitragMo, Jul 05, 2004 15:13
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Jul 05, 2004 15:19
Antworten mit Zitat
Benutzer-Profile anzeigen
kein problem
feld01 ist 20*20px
und player01 34*35px

matthias
greetz from zwerchnase

BladeRunner

Moderator

BeitragMo, Jul 05, 2004 15:34
Antworten mit Zitat
Benutzer-Profile anzeigen
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

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group