Hai ich bastel mal wieder an meinem Menü rum und Wollte
eine Scrool funktion einbauen Anfangs hatte ich ein Bild mit einer Auflistung aller Item's das nach oben bzw. nach unten geschoben wird nun zumal das Bild doch schon recht groß geworden ist gefällt mir die Sache aber nicht mehr gibt es eine Alternative?
Ich dachte da an eine Scroolfunktion wie in Lufia in dem ich einfach einen Teil der Items anzeige und diese dann nach dem Scroolen immer eine andere Itemliste anzeigt.
So ich habe mir mal eine Technik von Goblindieb angeschaut leider makert er zur Zeit nicht selbst aber nach absprache mit ihm stelle ich diese mal öffentlich:
Sieht leider noch verwirrender aus...
Hier werden ja immer 6 Items angezeigt diese werden dann als Pic anzeiget und dann die Variabel Itemcounter + 1 gesetzt also nächste Liste danach folgen die anderen Items in alphabetischer Rheienfolge.
Hier muss ich dann nur darauf achten das ich alle Items Abfrage (recht aufwendig) bsp. wenn es 1000 Items' gibt müsste ich alle Item's von 1-1000 abfragen.
So nun wollte ich euch fragen wie ihr dies noch einfacher gestalten würdet?
Da ich leider mit meinem latein am Ende bin Bitte ich um Hilfe!
EDIT:
Goblindieb ist Bereit mir später ein Tut zu seiner Technik zu schicken dies werde ich dann hier Posten!
Lg
Multi-Master1988
Geändert von Multi-Master1988 (29.08.2010 um 16:08 Uhr)
Bitte klicke im EasyEventExporter beim Importieren auf "Ja" und wähle die Datei "vbcode_lightbg.eft" im Ordner "ftemplates", dann wird der Code im Forum ordentlich dargestellt und farblich gehighlighted.
--
Mir war nichtmal bewusst dass ich nominiert wurde, aber: Cool! Hälfte des Lobes muss aber unbedingt an Archeia!
Du hast in deinem Code 2 Probleme,
1. Du benutzt die Items aus der Datenbank. Lass das, mach deine Items gleich als Variablen, dann kannst du Zeiger verwenden (Variable No.) und Code automatisieren
2. Du musst im Moment jedes Bild einzeln anzeigen lassen. Setz dich mal mit dem Picture Pointer Patch von Cherry auseinander, denn genau für solche Probleme ist der gut
Wenn die zwei Punkte beseitigt sind, müsstest du den Code nur einmal schreiben während ein Zeiger hochläuft (wenn dir "Zeiger" oder "Variable No." nichts sagt, probier mal aus, was Variable No. in Change Variable so macht )
--
class Dog { //(...)
boolean getBuddha() { throw NullPointerException; } }
Spielt Hero-Chan!
Vergiss bitte nicht die Technik ist nicht von Mir...
...
Wichtig: Auch übernommene Skripte musst du 100%ig verstehen, sonst sind sie wertlos sobald du modifizieren willst
Zitat
Und ich weiß was du mit Variablenummer meinst
...
Hier isses ausgewählt, das sind das, was man in der Informatik "Zeiger" nennt, eine Variable, die die Nummer (bzw Adresse) einer anderen Variable speichert.
Ein Beispiel:
Du hast deine Items in Variablen gespeichert, nämlich in den Variablen Nummer 1000 bis 1999 und willst jetzt rausfinden, ob der Held irgendein beliebiges Item besitzt.
Eine Möglichkeit wäre:
fork (Variable #1000 ungleich 0?) {Change Switch Ja ON}
fork (Variable #1001 ungleich 0?) {Change Switch Ja ON}
fork (Variable #1002 ungleich 0?) {Change Switch Ja ON}
fork (Variable #1003 ungleich 0?) {Change Switch Ja ON}
...
aber ich bezweifle einfach mal, dass du wirklich 1000 Abfragen schreiben willst.
Informatik dreht sich darum, sogenannte "Redundanzen" zu vermeiden, das heißt Unnötiges, Code, bei dem es sich vermeiden ließe, ihn zu schreiben
Hierfür wäre die Lösung mit einem Zeiger folgende:
Was du hier machst, ist den Zeiger, Variable #1, erst auf 1000 zu setzen (die Nummer der ersten zu prüfenden Variable) und dann immer zu schauen:
"Hat die Variable mit der in Variable #1 gespeicherten Nummer einen Wert ungleich 0?" und solange das nicht der Fall ist, erhöhst du Variable #1 immer um 1 und fragst so eben alle 1000 Variablen ab
(in Java isses witzig, da gibts nämlich ausschließlich Zeiger, sprich alle Variablen sind Zeiger ^^)
--
class Dog { //(...)
boolean getBuddha() { throw NullPointerException; } }
Spielt Hero-Chan!
Seh ich das richtig, das bei dir im Extremfall 1000 mal wiederholt wird? das ist ein bisschen Overhead für ein Scrollmenü.
Es geht viel leichter, wenn du den PicPointer von Cherry hast imho, dadurch hast du die Möglichkeit so ein "scrollen" (eigentlich ist es eher mit Karteikarten zu vergleichen, scrollen kann man aber genau so realisieren, da es nur eine anderen Tastenabfrage ist).
Schau dir als Vergleich doch mal das System von Velsabor oder Phönix Memories of Shadows an. Dort wurde es ohne Patches gemacht. Mit dem PicPointer-Patch, hast du den Vorteil alles in einem relativ kleinem Event zu machen. Ich hab dazu hier irgendwo im Forum mal eine Erklärung gemacht aber Gott weiß wo D:
1. Ich heiße R.D. 2. Ich rufe nur die Anzahl eines Items über Variablen ab, bei mir kannst du immer nicht fröhlich in der Datenbank deine Items machen ,was VIEL besser ist da du dort viele Einstellungen hast, die du mit einer Vari pro Item nicht lösen kannst.
@Dhan
Seh ich das richtig, das bei dir im Extremfall 1000 mal wiederholt wird? das ist ein bisschen Overhead für ein Scrollmenü.
...
Jung, das is kein Skript, das is eine Erklärung.
Und ja, für die Aufgabe, die der Code in der Erklärung arbeitet, gibt es keinen schnelleren Code, abgesehen von für den isolierten Fall nicht anwendbares Preprocessing.
Was der Picture Pointer Patch in einem Beispiel soll, das mit Pictures überhaupt nix zu tun hat, musst du mir mal erklären.
Zu deinem Tuto, ich würd dir empfehlen, da vorher erstmal reinzustellen, wie das Ding generell arbeitet (prosaisch) bevor du mit Code oder der Benennung von Variablen anfängst. N Flussdiagramm wär z.B. sinnvoll.
Technische Frage, wozu machst du das mim Modulo statt einfach 2 Varis pro Einheit anzulegen? Im Thread isses eine Erklärung mehr die vom eigentlichen Skript ablenkt
--
class Dog { //(...)
boolean getBuddha() { throw NullPointerException; } }
Spielt Hero-Chan!
Ich hab nicht behauptet das es ein Script ist Ich hab dir nur eine Frage gestellt.
Zitat
Zu deinem Tuto, ich würd dir empfehlen, da vorher erstmal reinzustellen, wie das Ding generell arbeitet (prosaisch) bevor du mit Code oder der Benennung von Variablen anfängst. N Flussdiagramm wär z.B. sinnvoll.
...
Das ist kein Tutorial, sonder eine Erklärung die im passenden Thread gebraucht wurde.
In eben jenen ging es um ein Menü bei dem man pro Seite eine Anzahl X Items anzeigt und Items die eine höhre ID haben werden rangerückt. Beim nächsten Mal poste ich den ganzen Thread.
Zitat
Was der Picture Pointer Patch in einem Beispiel soll, das mit Pictures überhaupt nix zu tun hat, musst du mir mal erklären.
...
Was du da geschrieben hast, hab ich mir gar nicht durchgelesen Hab nur unten das mit dem viele Schleifen gesehen.
Ich wollte nur eine Hilfe für den jungen Padawan geben, genau wie du
Schaus dir mal genau an, dann siehst du das man ohne diesen Patch die Ordner IDs, die die Position setzt und somit auch die Bild ID , nicht pointen kann sondern jedes mal mit Forks arbeiten muss, ich hatte keine Lust für 500 Items bei einem Menü mit jemals 8 Items pro Seite, 8 Abfragen pro Item zu machen (das müsste ich, weil ich ja die Items ja rangerückt werden sollen).
Zitat
Technische Frage, wozu machst du das mim Modulo statt einfach 2 Varis pro Einheit anzulegen? Im Thread isses eine Erklärung mehr die vom eigentlichen Skript ablenkt.
...
Gegenfrage, warum nicht? Warum 16 Variablen wenn 8 reichen? Das ist doch Verschwendung und als Programmierer hab ich gelernt, das man das unterlassen sollte (Ist ja nicht so, das ultra komplex is gel?). Und ich sehe nicht wie ein Exkurs ablenkt... hab ich in der Schule auch oft gehabt und hat nicht sonderlich abgelenkt.
Ein Scollleiste kann man bei diesem System einfach hinzufügen, ich nutze es in jedem meiner Spiele wenn ich ein Ordnersystem brauch.
P.S. Ich bin nicht gut im Erklären, habs auch nie behauptet daher kann es schon sein das vieles kompliziert klingt.
Ich hab nicht behauptet das es ein Script ist Ich hab dir nur eine Frage gestellt.
...
Jä, aber eine Frage, deren Sinn ich nicht verstehe. Wenn man prüfen will, ob in 1000 Varis eine nicht 0 ist muss man im worst case alle Varis durchtesten. Schneller als O(n) benötigt Preprocessing.
Zitat
Was du da geschrieben hast, hab ich mir gar nicht durchgelesen
...
o.O
Zitat
Schaus dir mal genau an, dann siehst du das man ohne diesen Patch die Ordner IDs, die die Position setzt und somit auch die Bild ID , nicht pointen kann sondern jedes mal mit Forks arbeiten muss, ich hatte keine Lust für 500 Items bei einem Menü mit jemals 8 Items pro Seite, 8 Abfragen pro Item zu machen (das müsste ich, weil ich ja die Items ja rangerückt werden sollen).
...
Jo, aber wie ich bereits sagte, in meinem Code kommen keine Pictures vor.
Zitat
Gegenfrage, warum nicht? Warum 16 Variablen wenn 8 reichen? Das ist doch Verschwendung und als Programmierer hab ich gelernt, das man das unterlassen sollte
...
Ne, als Programmierer geht man davon aus, dass Speicherplatz im Rahmen solcher kleiner Skripte praktisch unbegrenzt vorhanden ist und achtet auf Geschwindigkeit und Übersicht
Zitat
(Ist ja nicht so, das ultra komplex is gel?). Und ich sehe nicht wie ein Exkurs ablenkt... hab ich in der Schule auch oft gehabt und hat nicht sonderlich abgelenkt.
...
Er lenkt ganz einfach dadurch ab, dass du noch erklären musst, was der Modulo-Operator tut. Wissen serviert man in kleinen Häppchen.
--
class Dog { //(...)
boolean getBuddha() { throw NullPointerException; } }
Spielt Hero-Chan!
Jä, aber eine Frage, deren Sinn ich nicht verstehe. Wenn man prüfen will, ob in 1000 Varis eine nicht 0 ist muss man im worst case alle Varis durchtesten. Schneller als O(n) benötigt Preprocessing.
...
Zitat
Jo, aber wie ich bereits sagte, in meinem Code kommen keine Pictures vor.
...
Wie gesagt, ich wollte gar nicht irgendwas mit deinem Post machen oder kritisieren, nur wissen ob das nicht Overhead ist (als Erklärung eben).
Hab extra ne Zeiel freigelassen zwischen dieser Frage und meinen Gedanken zum Problem.
Zitat
Ne, als Programmierer geht man davon aus, dass Speicherplatz im Rahmen solcher kleiner Skripte praktisch unbegrenzt vorhanden ist und achtet auf Geschwindigkeit und Übersicht.
...
Ich nehm an das ist lieht im ermessen das Programmierers. ICH für meine Teil, achte auf so was ob kleines Programm/script oder Großes. Du nicht, cool
Zitat
Er lenkt ganz einfach dadurch ab, dass du noch erklären musst, was der Modulo-Operator tut. Wissen serviert man in kleinen Häppchen.