Hallo Besucher, der Thread wurde 2,2k mal aufgerufen und enthält 2 Antworten

letzter Beitrag von ralle am

Joystick unter HC-CAOS

  • Servus,


    Hier ein kleines Listing zur Joystickprogramierung:



    0 GOTO 60
    1 PRINTAT(2,2);"LINKS":RETURN
    2 PRINTAT(2,2);"RECHTS":RETURN
    4 PRINTAT(2,2);"RUNTER":RETURN
    5 PRINTAT(2,2);"LINKS RUNTER":RETURN
    6 PRINTAT(2,2);"RECHTS RUNTER":RETURN
    8 PRINTAT(2,2);"HOCH":RETURN
    9 PRINTAT(2,2);"LINKS HOCH":RETURN
    10 PRINTAT(2,2);"RECHTS HOCH":RETURN
    16 PRINTAT(2,2);"FEUER 1":RETURN
    17 PRINTAT(2,2);"FEUER 1 LINKS":RETURN
    18 PRINTAT(2,2);"FEUER 1 RECHTS":RETURN
    20 PRINTAT(2,2);"FEUER 1 RUNTER":RETURN
    21 PRINTAT(2,2);"FEUER 1 LINKS RUNTER":RETURN
    22 PRINTAT(2,2);"FEUER 1 RECHTS RUNTER":RETURN
    24 PRINTAT(2,2);"FEUER 1 HOCH":RETURN
    25 PRINTAT(2,2);"FEUER 1 LINKS HOCH":RETURN
    26 PRINTAT(2,2);"FEUER 1 RECHTS HOCH":RETURN
    60 ON JOYST(1) GOSUB 1,2,,4,5,6,,8,9,10,,,,,,16,17,18,,20,21,22,,24,25,26
    65 GOTO60


    Die
    eigentliche Abfrage ist in Zeilen 60 und 65 zu finden, leider ohne
    Abfrage der 2. Feuertaste. Der maximale Wert währe bei 58, Rechts hoch
    und beide feuertasten gedrückt. Sollte ohne Änderungen auch am KC87
    gehen. Zwegmäßigerweise kann man vor der PRINT-Anweisung noch ein CLS
    einschieben. Allerdings geht es hier nur um eine Demonstration der
    Joystickabfrage. Die Zeilen 1 bis 26 (58) sind dafür vorgesehen, hier
    kann eine Programmverzweigung eingefügt werden.
    --

  • Weiter im Text, jetzte darf sich was bewegen...


    0 CLS : Z=0 : S=0 : GOTO 60
    1 S=S-1:RETURN:!LINKS
    2 S=S+1:RETURN:!RECHTS
    4 Z=Z+1:RETURN:!RUNTER
    5 S=S-1:Z=Z+1:RETURN:!LINKS RUNTER
    6 S=S+1:Z=Z+1:RETURN:!RECTS RUNTER
    8 Z=Z-1:RETURN:!HOCH
    9 S=S-1:Z=Z-1:RETURN:!LINKS HOCH
    10 S=S+1:Z=Z-1:RETURN:!RECHTS HOCH
    16 BEEP : RETURN : ! CLS : PRINTAT(2,2);"FEUER 1":RETURN
    17 S=S-2:RETURN:!FEUER 1 LINKS
    18 S=S+2:RETURN:!FEUER 1 RECHTS
    20 Z=Z+2:RETURN:!FEUER 1 RUNTER
    21 S=S-2:Z=Z+2:RETURN:!FEUER 1 LINKS RUNTER
    22 S=S-2:Z=Z+2:RETURN:!FEUER 1 RECHTS RUNTER
    24 Z=Z-2:RETURN:!FEUER 1 HOCH
    25 S=S-2:Z=Z-2:RETURN:!FEUER 1 LINKS HOCH
    26 S=S+2:Z=Z-2:RETURN:!FEUER 1 RECHTS HOCH
    60 ON JOYST(1) GOSUB 1,2,,4,5,6,,8,9,10,,,,,,16,17,18,,20,21,22,,24,25,26
    70 PRINTAT(Z,S);"O" : PRINTAT(Z,S);" "
    100 GOTO 60


    Randtest:
    61 if Z<0 then Z=0
    62 if S<0 then S=0
    63 if Z>30 then Z=30
    64 if S>39 then S=39


    Damit es kein Syntax Error, der Randtest...

  • Ebenso geht ab CAOS 4.5 die Abfrage über PEEK(509), endspicht der Tastaturabeitszelle...


    1 Printat(10,10);peek(509):goto1


    Nachteil Feuer und Bewegung sowie Bewegung diagonal nicht möglich. Basicprogramme, welche über PEEK(509) gesteuert werden, sind dafür ohne Änderungen steuerbar.


    8-11 Cursortasten
    13 Entertaste (Feuer 2)
    32 Leertaste (Feuer 1)