fb:porticula NoPaste
3.4: Steuerung mit Joystick
Uploader: | nemored |
Datum/Zeit: | 24.09.2011 11:49:03 |
Hinweis: Dieser Quelltext ist Bestandteil des Projekts OpenBook: 2D-Spieleprogrammierung, zu dem es auf FreeBASIC-Portal.de eine Projektseite gibt.
' *** CODE 3.4: Steuerung mit Joystick
DIM buttons AS INTEGER, x AS SINGLE, y AS SINGLE
DECLARE FUNCTION bewege(BYREF sx AS INTEGER, BYREF sy AS INTEGER, _
BYVAL dx AS SINGLE, BYVAL dy AS SINGLE) AS INTEGER
DO
IF GETJOYSTICK(0, buttons, x, y) = 0 THEN
IF bewege(sx, sy, x, y) THEN SLEEP 200, 1 ' kleine Bewegungspause
END IF
IF sx = ax AND sy = ay THEN END ' Ausgang erreicht
SLEEP 1 ' Pause fuer den Prozessor
LOOP UNTIL INKEY = CHR(27)
FUNCTION bewege(BYREF sx AS INTEGER, BYREF sy AS INTEGER, _
BYVAL dx AS SINGLE, BYVAL dy AS SINGLE) AS INTEGER
' sx, sy: Spielerposition
' dx, dy: Bewegung in x- bzw. y-Richtung
' Rueckgabe: -1 bei erfolgreicher Bewegung; sonst 0
IF ABS(dx) < .7 THEN dx = 0 ' Bewegungsspielraum festlegen
IF ABS(dy) < .7 THEN dy = 0
IF felddata(sx+dx, sy+dy) = 32 THEN
LOCATE sy+1, sx+1 ' alte Position leeren
PRINT " ";
sx += SGN(dx) ' Spielerposition aendern
sy += SGN(dy)
LOCATE sy+1, sx+1 ' neue Position schreiben
PRINT "S";
RETURN -1 ' Bewegung erfolgreich
END IF
RETURN 0 ' keine Bewegung erfolgt
END FUNCTION