Seite 1 von 3
Gegenseitige Anfängerhilfe bei kleineren Gamez!
Verfasst: 23.04.2006 11:44
von Nili_Entertainment
Hi Leute,
ich habe mich an snake rangetraut und da trat mein erstes Problem auf.
Da ich noch ein blutiger Anfänger bin, bringe ich es nicht fertig, dass der kopf der schlange sich nur mit einem tastendruck von links nach rechts
bewegt.
wenn ich die taste loslasse, bleibt der kopf einfach stehen
bitte helft mir.
ich würde mich sehr freuen

Verfasst: 23.04.2006 13:20
von hardfalcon

Jaaaa, also ich würde dir ja so unwahrscheinlich schrecklich gerne helfen, das glaubst du ja gar nicht, aber leider.... nunja.... meine Glaskugel ist etwas trübe, weil meine Mutti sie vor 3 tagen versehentlich mit dem falschen Putzmittel saubergemacht/gescheuert hat. Deshalb kann ich leider den Quellcode von deinem Programm nicht sehen. Ich hab nichtmal in der Glaskugel gesehen, dass sich hinter diesem Thread ein komplett anderer Inhalt verbirgt, als du ihn im Thread-Titel angegeben hast. Demnach kann ich dich nur bitten: habe Mitleid mit all den Menschen, die keine funktionierende Glaskugel ihr Eigen nennen, und drück sich zukünftig bitte konkreter aus.
Danke!

Verfasst: 23.04.2006 13:28
von Nili_Entertainment
Ja tut mir leid das war mein zweiter beitrag überhaupt.
ich erleichtere dir das mit der kugel und schreibe meinen code mal hin
also ich habe das (mit meinen bescheidenen Kenntnissen) so angefangen:
InitSprite()
InitKeyboard()
InitMovie()
Global kopfx.w
Global kopfy.w
Global wanzx.w
Global wanzy.w
Global speedx.w
Global speedy.w
kopfx = 400
kopfy = 300
speedx = 2
speedy = 0
OpenScreen(800,600,32,"Snake")
Repeat
ExamineKeyboard()
ClearScreen(0,0,0)
StartDrawing(ScreenOutput())
DrawingMode(1)
FrontColor(255,15,0)
Box(kopfx,kopfy,10,10)
StopDrawing()
FlipBuffers()
If kopfx > 788
kopfx = 788
EndIf
If KeyboardPushed(205)
kopfx + 2
EndIf
;hier wirds experimentel
If kopfx + 2
kopfx +2
EndIf ; aber der kopf bewegt sich jetzt ohne dass ich was drücke-
; das ist zu haareraufen
If KeyboardPushed(205)
kopfx + 2
EndIf
If KeyboardPushed(203)
kopfx - 2
EndIf
If KeyboardPushed(208)
kopfy + 2
EndIf
If KeyboardPushed(200)
kopfy - 2
EndIf

Verfasst: 23.04.2006 13:33
von hardfalcon
Wenn du das ganze jetzt noch in Code-Tags setzt hättest, dann wärst du schon als Vollprofi durchgegangen...
Ich schau mir den Code gleich ma an...
//EDIT: Ich hab deinen Code mal etwas erweitert und verbessert:
Code: Alles auswählen
InitSprite()
InitKeyboard()
InitMovie()
Global kopfx.w
Global kopfy.w
Global wanzx.w
Global wanzy.w
Global speedx.w
Global speedy.w
kopfx = 400
kopfy = 300
; Du brauchst nur einen Geschwindigkeitswert, und der sollte dann auch verwendet werden,
; wenn du die entsprechende Variable schon deklarierst... ;)
speed = 2
OpenScreen(800,600,32,"Snake")
;Das hier solltest du machen, um zu verhindern, dass die Spielgeschwindigkeit "eiert" (der PC kann die Schleife ja
; unterschiedlich schnell durchlaufen, je nachdem wie er ausgelastet ist, sodass er sie zu oft pro Sekunde durchläuft)
SetFrameRate(60)
SetRefreshRate(60)
Repeat
ExamineKeyboard()
ClearScreen(0,0,0)
StartDrawing(ScreenOutput())
DrawingMode(1)
FrontColor(255,15,0)
Box(kopfx,kopfy,10,10)
StopDrawing()
FlipBuffers()
If kopfx = 0
Break
ElseIf kopfx = 790
Break
EndIf
If kopfy = 0
Break
ElseIf kopfy = 590
Break
EndIf
If richtung = 1
kopfx + speed
ElseIf richtung = 2
kopfx - speed
ElseIf richtung = 3
kopfy + speed
ElseIf richtung = 4
kopfy - speed
EndIf
If KeyboardPushed(#PB_Key_Right)
richtung = 1
ElseIf KeyboardPushed(#PB_Key_Left)
richtung = 2
ElseIf KeyboardPushed(#PB_Key_Down)
richtung = 3
ElseIf KeyboardPushed(#PB_Key_Up)
richtung = 4
EndIf
;Falls der Spieler keinen Bock mehr auf Snake hat
If KeyboardPushed(#PB_Key_Escape)
Break
EndIf
;Windows entscheidet selbst, wie lange es Pause macht je nach CPU-Auslastung, und wir krallen uns nicht
; die gesamte CPU-Power ;)
Delay(0)
ForEver
CloseScreen()
MessageRequester("Snake","Game over!"+Chr(10)+"Bis zum nächsten Mal! :)")
Wenn du irgendetwas nicht verstehst, dann frags ruhig nochmal nach, Sinn der Sache ist ja nicht Copy-Paste, sondern dass du lernst, wie man Snake programmiert...

Verfasst: 23.04.2006 13:35
von Nili_Entertainment
wie geht denn das mit dem (code)-tags
Verfasst: 23.04.2006 13:54
von Kaeru Gaman
beim posten der 5te knopf in der leiste oben...
da is fett, schräg, unterstreichen, zitieren und dann code...
Verfasst: 23.04.2006 14:06
von hardfalcon
Hab dir jetzt oben den Code hingepostet. Leider musste ich das Ding 3 Mal bearbeiten, bis ich raus hatte, dass phpBB2 sich an der 1. Erwähnung der
Verfasst: 23.04.2006 14:12
von Nili_Entertainment
danke ,dass ihr mir helft aber ich habe wieder ein problem.
ich habe deinen code kopiert und wenn ich ihn compiliere(

)
kommt eine fehlermeldung und zwar:
Zeile 38 Syntax Error!
was ist da schief gelaufen???

Verfasst: 23.04.2006 14:16
von Kaeru Gaman
bei mir steht in zeile 38 das break.. was steht da bei dir?
ich würde mal schätzen, dass du irgendwie beim kopieren was reingedaddelt hast, auf irgendeine taste gekommen bist...
welche version von PB benutzt du?
Verfasst: 23.04.2006 14:17
von hardfalcon
Welche PB-Version benutzt du denn? Die PB4.0-Beta, PB3.94 oder die Demo?