Pascal: toetsenbord-besturing

Pagina: 1
Acties:

  • link0007
  • Registratie: Augustus 2006
  • Niet online
Hallo, ik zit hier met een probleem. Ik ben namelijk bezig met een spel in Pascal, maar ik kan maar geen manier bedenken om "real-time controls" te krijgen. Tot nu toe heb ik niet meer kunnen maken dan een 'robotje' wat beweegt via de commando-stroom die jij invoert in het begin... Dit is natuurlijk een tikkeltje saai, en ik kom daarom hier om te vragen hoe maak je een input-systeem zonder [enter] te hoeven drukken op het eind?

Alvast bedankt!

IF IF = THEN THEN THEN = ELSE ELSE ELSE = IF;


  • basmatt
  • Registratie: December 2001
  • Laatst online: 16:07
moet ff heel diep terug denken, kan er dus iets naast zitten:

volgens mij bestaat er een boolean 'keypressed', die word waar als er een toets is ingedrukt. deze kan je weer uitlezen met 'readkey'

maar het zou zo kunnen zijn dat ik deze functie zelf een keer in een unit heb gezet.

ps, ik stam uit de tijd van pascal 7, de info kan dus wat outdated zijn

Dat er intelligente buitenaardse wezens bestaan wordt feilloos bewezen
door het feit dat ze nog geen contact met ons hebben opgenomen.


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 14:52

.oisyn

Moderator Devschuur®

Demotivational Speaker

Op welk platform werk je eigenlijk?

Onder DOS, als je poort $60 uitleest krijg je de laatst ingedrukte/losgelaten toets (als de high bit geset is is ie losgelaten). Je zou deze heel vaak uit kunnen lezen, alleen dan zit je wel met het probleem dat je toetsaanslagen kunt missen.

De meeste DOS games hookten dan ook IRQ1 (interrupt 9), die zowel wordt aangeroepen als je een toets indrukt als loslaat. Een typische handler registreerde deze events dan in een buffer, die in de gameloop weer gebruikt werd voor de input.

Als je een windows applicatie compilet zou je iets met de windows API moeten doen.

[ Voor 9% gewijzigd door .oisyn op 14-10-2006 10:31 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • link0007
  • Registratie: Augustus 2006
  • Niet online
Ow bedankt!
Zelfs zonder keypressed werkt het hoor, maar misschien wel wat minder efficient...
Maar voor de rest, nu kan ik eindelijk Oblivion nabouwen -_- :p

IF IF = THEN THEN THEN = ELSE ELSE ELSE = IF;


  • link0007
  • Registratie: Augustus 2006
  • Niet online
Ok, dit heb ik onderhand wel door :)

Maar weet iemand ook een lijst met alle poorten gelist? ik wil namelijk ook wel een keer iets leuks bouwen zoals een programma die de num, caps, en scroll lock lampjes in patronen laat bewegen :P
of die de CD-drive opent... is er dus een lijst met poorten, hoe ze te lezen/schrijven, en al zo'n zaakjes?


Alvast bedankt :)


edit:

Sorry, vergeten te editen ipv nieuwe post. Kan iemand hem ff mergen? Bedankt!

[ Voor 12% gewijzigd door link0007 op 27-11-2006 22:44 ]

IF IF = THEN THEN THEN = ELSE ELSE ELSE = IF;


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
http://groups.google.com/...mlock+scrolllock+capslock :?

Voor een complete lijst moet je eens googlen naar "Ralph Brown's interrupt list" ;)

[ Voor 49% gewijzigd door RobIII op 27-11-2006 23:58 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1