PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Snake



confUsed?
07.02.2007, 20:13
hey ho

hab mit vor ca 2 wochen ein µC board (atmega32) gebastelt und hab mittlerweile auch ein 240x128 glcd dran hängen. jetzt versuch ich grad ne sehr primitive version vom warscheinlich eh bekannten handy spiel "snake" zu programmieren.

follgendes hab ich bis jetzt:


$regfile = "m32def.dat" ' specify the used micro
$crystal = 16000000 ' used crystal frequency
$baud = 19200 ' use baud rate

$hwstack = 32 ' default use 32 for the hardware stack
$swstack = 10 ' default use 10 for the SW stack
$framesize = 40 ' default use 40 for the frame space

Config Portd = Input
Portd = 1

Taster1 Alias Pind.0
Taster2 Alias Pind.1
Taster3 Alias Pind.2
Taster4 Alias Pind.3

Config Graphlcd = 240 * 128 , Dataport = Porta , Controlport = Portb , Ce = 2 , Cd = 3 , Wr = 0 , Rd = 1 , Reset = 4 , Fs = 5 , Mode = 8

Config Porta = 1
Config Portd.0 = 1
Config Portd.1 = 1
Config Portd.2 = 1
Config Portd.3 = 1


Dim X As Byte , Y As Byte


Cls

Cursor Off

Wait 1

Locate 1 , 1

'LINE(X0,Y0) - (X1,Y1), on/off
Line(1 , 1) -(1 , 126) , 255 ' links oben - links unten
Line(1 , 1) -(238 , 1) , 255 ' links oben - rechts oben
Line(238 , 126) -(1 , 126) , 255 ' rechts unten - links unten
Line(238 , 126) -(238 , 1) , 255 ' rechts unten - rechts oben

Waitms 1


X = 5
Y = 5

Beginn:

Erhoeher_rechts:

If Taster1 = 0 Then
X = X + 1
Waitms 50
Pset X , Y , 255
Goto Erhoeher_unten
Else
Goto Erhoeher_unten
End If

Erhoeher_unten:

If Taster2 = 0 Then
Y = Y + 1
Waitms 50
Pset X , Y , 255
Goto Erhoeher_unten
Else
Goto Beginn
End If

damit kann ich die linie ausgehend von pixel 5,5 über 2 taster nach rechts und nach unten wandern lassen. solang eine taste gedrückt is wächst die linie in diese richtung

die version für 4 wege hätte dann so ausgeschaut:






Waitms 1

X = 5
Y = 5

Beginn:

Zaehler_rechts:

If Taster1 = 0 Then
X = X + 1
Waitms 50
Pset X , Y , 255
Goto Zaehler_rechts
Else
Goto Zaehler_unten
End If

Zaehler_unten:

If Taster2 = 0 Then
Y = Y + 1
Waitms 50
Pset X , Y , 255
Goto Zaehler_unten
Else
Goto Zaehler_oben
End If

Zaehler_oben:

If Taster3 = 0 Then
X = X - 1
Waitms 50
Pset X , Y , 255
Goto Zaehler_oben
Else
Goto Zaehler_links
End If

Zaehler_links:

If Taster4 = 0 Then
Y = Y - 1
Waitms 50
Pset X , Y , 255
Goto Zaehler_links
Else
Goto Beginn
End If

aber jetzt fängt die linie von punkt 5,5 an entweder immer nach rechts oder nach unten zu laufen, ohne das eine taste gedrückt wird. ich hab allerdings keine ahnung warum? ist die anzahl der loops begrenzt? wär net wenn mir wer helfen könnte

mfg
conf

apohero
21.05.2008, 18:17
Hallo,
es ist jetzt schon ne Weile her... hast du inzwischen eine Lösung? Würde mich interessieren.
mfg

confUsed?
21.05.2008, 21:05
wow den thread gibts auch noch :)

hab mich ehrlich gesagt nicht weiter damit beschäftigt

apohero
22.05.2008, 09:17
Vergessen aber nicht verloren :)

Schade das du dich nicht weiter mit dem Spiel beschäftigt hast. Werde dann, wenn ich meinen GLCD bekommen habe, das Spiel weiterentwickeln.