Tasten


Jetzt kannst du schon beachtlich viel, du hast schon eine ganze Menge an Code hinter dir...aber so ein richtiges Programm kann man ja noch nicht machen, oder? Ohne Tasten geht es einem ziemlich schlecht...Dem können wir Abhilfe schaffen. Denn in LUA ist das auch wieder ziemlich leicht. So wie alles andere auch. Zuerst, was man zur Tasten-Benutzung wissen sollte:

Mit pad = Controls.read() öffnet man sozusagen die Schnittstelle zu den Tasten. Es gibt folgende Tasten:

	pad:cross()
	pad:triangle()
	pad:circle()
	pad:square()
	pad:up()
	pad:down()
	pad:left()
	pad:right()
	pad:l()
	pad:r()
	pad:start()
	pad:home()
	pad:select()
	pad:note()

	pad:analogX()
	pad:analogY()

Wie du bemerkt haben solltest, ist "pad" nur eine Variable. Wir hätten es auch so vereinbaren können:

	müsli = Controls.read()

...dann würde die Tastenfunktion dazu so heißen:

	müsli:cross()

...klingt jetzt wahrscheinlich erst mal lustig, aber das sollte man wissen. Es handelt sich ja doch nur um eine Variable. Anstelle von "müsli" hätte man auch "Apfelbaum" oder "Toastbrot" nehmen können...oder was auch immer du willst. Am meisten Sinn macht allerdings immer noch pad. Da weiß man sofort, was gemeint ist...Die Tastenfunktionen sind extrem wichtig. Ein Programm ohne Eingabe- und Manipulation ist nämlich langweilig. Stell dir nur einmal ein PC-Programm vor, wo man weder Maus noch Tastatur nutzen kann. Das wäre auch sinnlos. Aber genug um den heißen Brei geredet. Wagen wir uns an den Code...

	black = Color.new(0,0,0)
	white = Color.new(255,255,255)
	
	while true do
		screen:clear(black)
		pad = Controls.read()
		
		if pad:cross() then
			screen:print(10,10,"Es geht!",white)
		end
		
		screen.flip()
		screen.waitVblankStart()
	end

Wissen sollte man auch, dass Controls.read() nur in Verbindung mit einer Schleife Sinn macht. Da die ständig wiederholt wird, werden auch so ständig die Tasten abgefragt. Ausserhalb einer Schleife würden die Tasten nur ein einziges Mal abgefragt. Nach der Abfrage würde dann auch schon der weitere Code folgen, und mit der Abfrage kann man gar nichts mehr anfangen, weil das Controls.read() längst verjährt ist. Also, Controls.read() immer in Verbindung mit einer Schleife ;)