Snake???
lima-city → Forum → Programmiersprachen → Basic
all
bestimmten farbe
count
eigenschaft
eins
fragen
kopie
label
laden
niedrigeren kennung
null
objekt
richtung
schlange
spieler
tasten
tutorial
variable
versuch
zweit
-
Hi@all,
also ich behesche schon mal die Grundkenntnise von VB6! Nun hab ich mir ein Ziel gesetzt eine Art Snake zu programmieren... Also der Rand ist gesetzt und das Shape kann man mir den Pfeiltasten steuen nun meine Frage wie kann ich wenn ich ?ber ein zuf?llig erzeugtes Feld gehe meine Schlange verl?ngern? W?re nett wenn jemmand antworten k?nnte!
MFG Sven -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Die sehr komplizierte L?sung w?re:
Erzeuge ein neues Objekt, das hinter dem Objekt mit der n?chst niedrigeren Kennung l?uft. Daf?r m?sste man aber imemr ein Neues Objekt erzeugen das dnan einen bestimmten code ausf?hrt usw.
Eine andere L?sung f?llt mir gerade auch nicht ein au?er immer eine neue Schlange zu laden! -
battlesnake von battlesoft (www.battlesoft.de.vu)
Geht so: du machst ein Label(Schlange1), in einer bestimmten Farbe. dann kopierst du das label und l?schst die kopie wieder. dadurch wird ein elementenfeld (array) erstellt. du kannst auch in die index-eigenschaft 0 reinschreiben. dann im code deklarierst du eine variable als label. jetzt wird nacheinander immer von hinten her ein feld auf das vorige verschoben. und das erste wird je nach gedr?ckter richtungstaste versetzt, die in einer variable gespeichert ist (immer die letztgedr?ckte taste).
ungef?hr so (in einem Timer):
Dim Feld as Label
For Each Feld in Schlange1
If Feld.index = 0 then goto weiter 'die erste wird 'jenach taste versetzt
Feld.Top = Schlange1(Feld.index - 1).top
Feld.left = ....
weiter:
next feld
jetzt der kopf
Select Case Richtung
case vbkeyleft
Schlange1(0).left = Schlange1(0).left - 120)
...
End Select
'120 entspricht einem Raster.
Jetzt noch testen, ob der Spieler einen Punkt eingefangen hat:
If Schlange1(0).top = Punkt.top and schlange1(0).left = Punkt.Left then
'Punkt gefangen, Schlange verl?ngern
Load Schlange1(Schlange1.count)
ENd IF
Dadurch wird ein neues Feld erstellt. . Count z?hlt die Felder der Schlange. Weil aber die Null mitgez?hlt wird, ist es eins mehr als das h?chste, also das, welches man neu erstellen muss.
Du musst aber schauen, dass der Punkt auf dem Raster ist, also seine Left und Top-Werte durch 120 teilbar sind:
Randomize
Punkt.Top = Int(Rnd * (UntererRand.Y1 - ObererRand.Y1) + UntererRand.Y1) * 120
Punkt.Left = ....
kann sein, dass ich X und Y verwechselt habe. Auf jeden fall ist damit die Linie oder Position des unteren und oberen Randes gemeint.
Ich hoffe, ich habs einigerma?en verst?ndlich erkl?rt, auch wenn der Code eher fortgeschritten ist. F?r sowas isses dann besser, wenn ich chatten kann, da kann ich alles erkl?ren und so. Schreib mir ne PN, wenn du willst.
-
Kannst dir auch unter www.tutorials.de eines ?ber snake runterladen
-
Ich hab so was ?hnliches wie Snake auf meiner PS2 programmiert. Es hei?t Tron. Man kann das zu zweit spielen. Macht ziemlich Spa?.
Wenn jemand auf der PS2 programmieren will muss man yabasic lernen. Entweder man geht auf meine Website (http://jpaket.lima-city.de) oder man besucht die original Yabasic-website (www.yabasic.de). -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage