Das erste kleine Projekt
Genaugenommen hast du jetzt die Basics von LUA drauf. Aber wie macht man denn nun ein Programm? Darauf möchte ich euch eine Antwort geben. Und zwar anhand eines simplen Malprogramms. Ich möchte jetzt allerdings nicht daraufhin hundert verschiedene Mini-Malprogramme auftauchen sehen.
Machen wir uns doch zuerst einmal Gedanken darüber, was man so alles brauchen könnte für das Malprogramm. Für ein simples Malprogramm brauchen wir:
1. Eine Malfläche
2. Einen Cursor
3. Tasten
4. Malfunktion
Vielleicht klingt das jetzt erstmal fürchterlich aufwendig, ist es aber gar nicht. Der Code sollte recht einfach zu verstehen sein. Der DPad-Code wird aber vielleicht für Verwirrung sorgen. Bei Fragen dazu einfach ins Forum posten. Den Cursor soll man nämlich mit dem DPad steuern. Für das DPad gibt es einen Standardcode, den wir auch hier verwenden. Nun aber zum Code:
weiss = Color.new(255,255,255) --definiert die farbe weiss schwarz = Color.new(0,0,0) --definiert die farbe weiss malflaeche = Image.createEmpty(480,272) --erstellt ein neues, leeres Bild mit 480x272 Pixeln malflaeche:clear(weiss) --färbt das Bild "malflaeche" weiss cursor = Image.load("cursor.png") --lädt das Bild "cursor.png" in die Variable cursor cursor_x = 100 --Variable mit dem Wert 100, später unsere X-Position des Cursors cursor_y = 100 --Variable mit dem Wert 100, später unsere Y-Position des Cursors while true do --Mainloop pad = Controls.read() --DPad-Code...muss man nicht verstehen. Fragen bitte ins Forum posten dx = pad:analogX() dy = pad:analogY() if dx > 30 then cursor_x = cursor_x + (math.abs(pad:analogX())/64) end if dx < -30 then cursor_x = cursor_x - (math.abs(pad:analogX())/64) end if dy > 30 then cursor_y = cursor_y + (math.abs(pad:analogY())/64) end if dy < -30 then cursor_y = cursor_y - (math.abs(pad:analogY())/64) end --DPad-Code ENDE screen:blit(0,0,malflaeche) --zeigt die Malfläche an screen:blit(cursor_x, cursor_y, cursor, true) --zeigt das cursor auf cursor_x und cursor_y an if pad:cross() then malflaeche:drawLine(cursor_x, cursor_y,cursor_x, cursor_y,schwarz) end screen.flip() screen.waitVblankStart() end
Wenn ihr alles übernommen habt und abspeichert, solltet ihr ein sehr mageres Malprogramm besitzen^^...ich hoffe, ihr versteht, wie das Programm funktioniert. Wir haben erst 2 Farben definiert, weiss und schwarz. Dann habe wir ein leeres Bild mit der Auflösung 480x272 erstellt. Das ist dann später unsere Malfläche. Anschließend haben wir noch eine Grafik für den Cursor geladen und seine x und y Position bestimmt. Im Mainloop dann haben wir zuerst den Code für den DPad. Ihr fragt euch sicherlich, was das "> 30" usw bedeutet. Naja, die Erklärung ist denkbar einfach, das DPad kann ja mehr oder weniger sanft bewegt werden. Die DPad-Sensibilität reicht bis zu 128. Ohne das "> 30" würde sich der Cursor schon beim leichtesten Berühren stark bewegen. In den If-Anweisungen werden je nach Bewegung des DPads die Koordinaten des Cursors verändert. Nach diesem Code wird noch die Malfläche und der Cursor selbst ausgegeben. Und zu guter letzt, wenn man X drückt, soll noch ein Punkt auf die Malfläche gezeichnet werden...