PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Menü-Bewegung: Wo ist der Wurm drin?



Vulpes
12.09.2012, 13:43
Ich habe momentan ein Menü erstellt, das soweit funktioniert: Man kann die gewünschten vier Felder auswählen.
Was nicht funktioniert ist die Menübegrenzung (sprich: du bist auf dem Feld rechts oben und du gehst nach rechts,
dann sollte die Auswahl auf dem Feld links oben erscheinen). Das Eigenartige ist teilweise funktioniert sie auch.
Zum Glück nicht ganz chaotisch^^
Wie ihr dem Spoiler entnehmen könnt (im Bild oben links), habe ich 12 Felder definiert: die inneren Vier repräsentieren die sichtbare
Auswahl, die Äußeren verhindern schlichtweg nur, daß die Positionsbestimmende durch Pfeiltastendruck ins Unendliche läuft.
Die Randfelder -3, -2, 0, 4 erfüllen meine Erwartungen tadellos, wohingegen die anderen Vier bocken und entweder gar nicht reagieren,
oder für mich chaotisch.
Ich hab auch die letzen beiden Stunden irchewie ein Brett vor dem Kopf, aber einen Rechenfehler konnte ich nicht finden.

EDIT: Ach ja: Ich benutze den Rm2k. Falls das einen Unterschied genüber dem 2003er macht ...

Hand auf's Herz: Ich hoffe ihr habt ne Idee
Vulpes

http://s7.directupload.net/images/120912/pomx3459.jpg (http://www.directupload.net)

Ringlord
12.09.2012, 14:03
Eh, warum hast du gen Ende bei Menu-Postion 9 auch noch, im Gegensatz zum ganzen Rest, "Above" mit angegeben?

Kazesui
12.09.2012, 14:04
Bin mir nicht ganz sicher was du meinst, aber wenn es nur darum geht um zwischen die 4 inneren Felder auswählen zu können, könntest du sowas in der art stattdessen versuchen in dem du zwei weitere Variable dazulegt (x und y)



branch OrtMenuTasten = 1
variable y add 2
variable y mod 4
variable OrtMenuPosition set y
variable OrtMenuPosition add x
end

branch OrtMenuTasten = 2
variable x add 1
variable x mod 2
variable OrtMenuPosition set y
variable OrtMenuPosition add x
end

branch OrtMenuTasten = 3
variable x add 1
variable x mod 2
variable OrtMenuPosition set y
variable OrtMenuPosition add x
end

branch OrtMenuTasten = 4
variable y add 2
variable y mod 4
variable OrtMenuPosition set y
variable OrtMenuPosition add x
end

Die Positionen Nummer werden dann so aussehen



0 1
2 3


Und dann brauchst du den äusseren Felder nicht mehr, wenn die wirklich nur dazu diente der Position innerhalb den inneren 4 zu halten.

Vulpes
12.09.2012, 14:17
Mh, das verstehe ich leider nicht. Hoffentlich liegt es nur daran, daß ich nicht weiß, was bei ,,mod" passiert.

Die Menüfunktion klappt soweit wie erwünscht nur klappt es noch nicht, daß man ähnlich wie bei einem
Ringmenü von ganz unten nach oben wechseln kann (sehr gut wahrscheinlich, das später mehr Felder
als Vier dazukommen) uä. Das was mich bei der Fehlersuche verstört ist ja, daß es bei Vier von Acht dieses
Ringmenü System so klappt wie ich es mir gedacht habe: Nur von unten nach oben; und von rechts nach
links bockt es herum.

Deines habe ich zwar nicht ganz verstanden, aber bei dir gibt es kein Ringmenüäquivalent. Sollte mein
Menü überhaupt gar nicht so klappen wie ich will, dann werde ich dieses Element fallen lassen und sehr
gerne auf dein Menü zurückgreifen.

EDIT: kannst du mir verraten, was denn bei ,,mod" mit der Variable passiert?
EDIT2:@Ringlod habe dich übersehen^^ War ein Versuch das Problem zu lösen: hat nicht viel verändert,
außer, daß sich das chaotische Verhalten von 9 und 10 gefühlt verändert hat... (mach ja auch irgendwo Sinn ...?) Ich stell das mal zurück.

Mh Danke
Vulpes

Kazesui
12.09.2012, 14:34
Mod (oder auch modulo) nimmt der Wert in dem Variable, teilt es durch dem Mod wert und gibt dir dann den Restwert zurück, sprich 7 mod 4 gibt dir dann 3.
Und doch, bei meinem beispiel kommt man von die eine Ecke auf dem anderen.

Fangen wir mal an bei position 0. Jetzt sind Variabel x und y gleich 0.
Wir klicken mal rechts und jetzt wird 1 zu x gelegt. 1 mod 2 = 1, also passiert nix weiter.
Der Position wird nun berechnet: 0 + 1 = 1, also sind wir nun oben rechts.

Klicken wir nochmal rechts wird nochmal 1 zu x addiert.
jetzt aber wirds gleich wieder 0 weil 2 mod 2 = 0
Der Position wird berechnet: 0 + 0 = 0, und d.h. dass wir wieder oben links sind.

Es funktioniert ähnlich fürs oben und unten klicken

Vulpes
12.09.2012, 16:09
Ich bin mir zwar nicht ganz sicher, aber der Unterschied ist der, daß du ähnlich wie
im Koordinatensystem zwei Variablen zur Positionsbestimmung verwendest?

Mod habe ich wirklich nicht verstanden: Du redest von teilen? 2mod2=0 und 7mod4=3 das liest sich mehr wie Minus nehmen.

Ich entschuldige mich, wenn ich michgeistig ungeschickt anstelle^^

Kazesui
12.09.2012, 16:27
So etwa @Koordinaten system ähnlich

und es ist der Restwert von das teilen den zu zurück kriegst, nicht von wieviel es sich teilen lässt

120 div 7 = 17
120 mod 7 = 1


120 : 7 = 17
7
50
49
1

Die Algorithmus über war zumindest wie ich gelernt habe Restwert beim teilen auszurechnen, halt so falls der nicht bekannt erscheinen sollte, sprich wenn man nicht mit decimal Werten arbeiten sollte

Vulpes
12.09.2012, 19:12
Da ich mein Problem weder gelöst habe, noch verstanden habe, wo ich einen Fehler gemacht habe
würde ich gerne dein System übernehmen, wenn ich es verstehen würde ...
Naja probieren geht über studieren^^

Danke hier
Vulpes