Gegenseitige Anfängerhilfe bei kleineren Gamez!

Anfängerfragen zum Programmieren mit PureBasic.
Nili_Entertainment
Beiträge: 13
Registriert: 16.04.2006 11:49
Wohnort: Sonneberg (96515)

Gegenseitige Anfängerhilfe bei kleineren Gamez!

Beitrag 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 <)
Benutzeravatar
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46

Beitrag 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! <)
Nili_Entertainment
Beiträge: 13
Registriert: 16.04.2006 11:49
Wohnort: Sonneberg (96515)

Beitrag 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 :evil:
Benutzeravatar
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46

Beitrag von hardfalcon »

Wenn du das ganze jetzt noch in Code-Tags setzt hättest, dann wärst du schon als Vollprofi durchgegangen... :wink:
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... :wink:
Zuletzt geändert von hardfalcon am 23.04.2006 14:05, insgesamt 4-mal geändert.
Nili_Entertainment
Beiträge: 13
Registriert: 16.04.2006 11:49
Wohnort: Sonneberg (96515)

Beitrag von Nili_Entertainment »

wie geht denn das mit dem (code)-tags
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

beim posten der 5te knopf in der leiste oben...

da is fett, schräg, unterstreichen, zitieren und dann code...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46

Beitrag 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

Code: Alles auswählen

-Tags störte... :lol:
Nili_Entertainment
Beiträge: 13
Registriert: 16.04.2006 11:49
Wohnort: Sonneberg (96515)

Beitrag von Nili_Entertainment »

danke ,dass ihr mir helft aber ich habe wieder ein problem.
ich habe deinen code kopiert und wenn ich ihn compiliere( 8) )
kommt eine fehlermeldung und zwar:

Zeile 38 Syntax Error!
was ist da schief gelaufen??? :?
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46

Beitrag von hardfalcon »

Welche PB-Version benutzt du denn? Die PB4.0-Beta, PB3.94 oder die Demo?
Antworten