Das Haus von Nikolaus

  • 3 Antworten
  • Letztes Antwortdatum
A

AndrejEdd

Neues Mitglied
0
Hallo zusammen ich beschäftige mich in der letzten Zeit immer mehr mit dem Entwickeln von Android Apps.

Nun möchte ich eine App entwickeln bei der man das Haus des Nikolaus zeichnen muss ...

Es sollte eine Vorlage im Hintergrund sein, und wenn man mit dem Finger darüber geht sollte es eine linie dem Finger nachziehen. Das Haus sollte gezeichnet werden ohne die Hand zu heben und ohne mit zwei Finger das Haus zu zeichnen ...


Wie sollte ich vorgehen?

Es soltle ca. so aussehen.
upload_2015-8-21_14-21-5.png
 
Hallo,
kurz gesagt "einfach machen" :D
Spaß beiseite.. Deine Activity implementiert den TouchListener und dort fragst du die MotionEvents ab. Solange der Pfad des Hauses in der Toleranz (sagen wir mal +/-50 Pixel nicht unter/überschritten ist, ist alles gut und das Spiel / die Abfrage geht weiter).. Anderenfalls erfolgt der Abbruch - ebenso wenn das Touch-Event unterbrochen wurde (also der Finger vom Display entfernt wurde).
PS: denke daran, dass 50 Pixel nicht auf jedem Gerät 50 Pixeln entsprechen.. Stichwort "Density-Independent".

PPS: die Abfrage wann das Spiel zu Ende ist (also das Haus fertig) kannst du über absolute Werte bestimmen. Einmal zB den Mittelpunkt, dann den höchsten Punkt des Dachs, usw, usw... Ob ein Weg doppelt genommen wurde, kannst du über einen Container (zB Liste) abfragen, in dem du alle x-Sekunden die aktuelle Position speicherst.
 
Ich möchte noch was hinzufügen:

- Du unterbindest einfach erstens mal multiple Touches so dass nur dein erster Pointer ausgewertet wird.
- Du fragst nur die Koordinaten ab wenn es ein MotionEvent.ACTION_MOVE ist.
- Du malst eine Linie von einem Punkt zum Nächsten.
- Es gibt verschiedene Wege die genommen werden können um das Haus zu zeichnen also schreib oder guck im Internet nach welche Wege es gibt das Haus vom Nikolaus zu zeichnen, zum Beispiel kann man glaube ich das Haus nicht zeichnen wenn man einen der beiden mittleren Eckpunkte oder die oberste Ecke als Start nimmt. Ich glaube so wie ich das sehe gibt es nur 6 Möglichkeiten da man nur die 2 untersten Eckpunkte als Start nehmen kann mit jeweils 3 vers. Wegmöglichkeiten und das Gute ist es sind grundsätzlich 3 jeweils gespiegelt. Ich könnte mich aber auch irren ;)
Du könntest einen BinärBaum anfertigen indem du abfragst welche Ecke von der letzten Ecke aus erreicht werden muss. Dadurch hast du auch einen vorgegeben Weg welcher gegangen werden muss.
- Deine Abfrage ob der User richtig zeichnet richtet sich dann nach dem Weg zum nächsten Eckpunkt. Entweder wertest du es aus ob der User richtig gezeichnet hat nachdem er immer den nächsten Eckpunkt erreicht hat. Oder währenddessen er zeichnet indem du feststellst welche Ecke er anvisiert und welcher weg dadurch gegangen werden muss.


Ein Vorschlag von mir noch:

Wie wärs um das Ganze für dich zu vereinfachen dass man als ausganspunkt eine Ecke durch draufklicken wählen muss und dann wird von dieser Ecke aus eine Linie zum Finger des User gezeichnet und wenn er den Nächsten Punkt erreicht wird eine neue Linie von eben dieser gespawnet die wiederum am Finger des Users kleben bleibt bis er eine Ecke erreicht?! So sind dann die Abfrage sehr einfach....Zum Beispiel falls eine Ecke schon 2 mal besucht wurde und man kommt jetzt ein drittes mal drauf dann wars das :)
Dann kann man da noch ein Zeitbonus einbauen wie schnell der User das zeichnen kann... daraus kann man ein lustiges Spiel amchen.


Und dann kann man das ganze sogar noch erweitern indem du dir andere Figuren ausdenkst die man nachzeichnen muss und dafür brauchst du einfach nur Eckpunkte setzen und abfragen ob die Ecke die gerade erreicht wird schon 2 mal besucht wurde....

Lass der Kreativität freien Lauf ;)
 
PS.: Ich glaube ich setze diese Idee mit der Erweiterung selber um....du hast nichts gehört also ;) ^^
 
Zurück
Oben Unten