Snake tail?

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Frusciante

Betreff: Snake tail?

BeitragDo, Aug 04, 2005 17:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo, ich bin grad dabei nen Snake clon zu proggen. Eigentlich ist alles fertig. Man kann den Kopf mit einem Schwanzteil steuern, Kollisionsabfrage, dass der Apfel rnd gesetzt wird und die fressanimationen Smile
Doch jetzt steh ich vor dem eigentlich Problem eines Snake spieles. Ich habe mir jetzt 2 Tage lang den Kopf zerbrochen, aber mir ist nichts eingefallen. Wie schaffe ich es das der Schwanz des Snakes sich auf den alten korrdinaten des Kopfes bewegt und nicht immer direkt hinter dem Snake ist? Könnt ihr mir vieleicht nen Tipp geben, nen kleinen Denkanstoss? Danke!
mfg Frusciante²

Waveblue

BeitragDo, Aug 04, 2005 17:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich würde einenType benutzen!
Du speicherst einfach die Position des Kopfes aller paar Sekunden ab und an diese Stellen packst du dann die Schwanzteile!
This is 10% luck
20% skill
15% concentrated power of will
5% pleasure, 50% pain
and 100% reason to remember the name

FluiX

BeitragDo, Aug 04, 2005 21:45
Antworten mit Zitat
Benutzer-Profile anzeigen
oder ein array, du sagst die schlange kann höchstens 100 tiles lang werden -> dim koerper(100) und speicherst dann für jedes tile die position ab, pro durchlauf muss dann halt das 1. teil zum 2. werden...
traue niemandem!!!

Sebastian

BeitragFr, Aug 05, 2005 14:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Z.b:


BlitzBasic: [AUSKLAPPEN]

; Rob´s BB-Kurs 2
; Robert Gerlach 11.2001
;
; Snake Grundlagen
;----------------------------------------------
; Noch kein Spiel, nur die Technik hinter einer Snake.



Graphics 640, 480, 16,2
SetBuffer BackBuffer()



; Startposition festlegen
Global x = 320
Global y = 240

; Die Richtung festlegen
Global xplus = 1 ; Nach rechts
Global yplus = 0 ; weder nach oben oder nach unten. Nur nach rechts.

; Die Länge der Schlange
Global laenge = 200
Dim snakex(laenge + 1)
Dim snakey(laenge + 1)



; Hauptschleife
Repeat
Cls

tastenpruefen
snakebewegen

Flip
Until KeyHit(1)
End


;-----------------------------------------------------------------------
Function tastenpruefen()
; Tastenabfrage
If KeyHit(205) Then ; rechts
xplus = 1
yplus = 0
EndIf

If KeyHit(203) Then ; links
xplus = -1
yplus = 0
EndIf

If KeyHit(208) Then ; unten
xplus = 0
yplus = 1
EndIf

If KeyHit(200) Then ; oben
xplus = 0
yplus = -1
EndIf
End Function
;----------------------------------------------------------------------
Function snakebewegen()

x = x + xplus ; xplus und yplus werden in tastenpruefen() gesetzt.
y = y + yplus


; Wenn er am Rand ist, kommt er an der anderen Seite wieder raus
If x > 640 Then x = 0
If x < 0 Then x = 640
If y > 480 Then y = 0
If y < 0 Then y = 480


; Jeder Punkt der Linie wird gemalt
For i = 0 To laenge
Color i, laenge - i + 50, laenge - i + 50; Unwichtig, aber schön...
Plot snakex(i), snakey(i)
Next

; Jedem Punkt werden die Koordinaten des davorliegenden zugewiesen.
; Das eigentlich wichtige an einem Snake-Programm.
;_________
For i = laenge To 1 Step -1
snakex(i) = snakex(i - 1)
snakey(i) = snakey(i - 1)
Next
;---------

; Der erste Punkt hat die Hauptkoordinaten. Die des Anfangs eben.
snakex(0) = x
snakey(0) = y
End Function
Seit 2 Jahren kein BlitzBasic und kein Windows mehr, und stolz darauf !

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group