PlanetSwitch Planet3DS PlanetVita PSP.de PlanetiPhone Classics Forum Handheld-Wiki

PGN-ID:[?] (Nicht eingeloggt)
Login
Registrieren
PlanetDS PlanetGameboy N-Page.de
portablegaming.de  

Zurück   portablegaming.de > Allgemeines Spielehandheldforum, GBA, N-Gage und Development > Development Abteilung


Development Abteilung Ihr wollt für euren Lieblingshandheld Spiele oder Tools entwickeln?
Bitte die Präfixe benutzen!

Antwort
 
LinkBack Themen-Optionen Thema durchsuchen
Alt 09.09.2002, 13:28   #1
ehem. Teammitglied
 
Benutzerbild von Tharo
 
Registriert seit: 02.09.2002
Ort: フランクフルト
Spielt gerade: FF7 Remake

Tharo wird schon bald berühmt werdenTharo wird schon bald berühmt werden

Standard Altes Zeug

Teorie zu einem Ringmenü.


Schon immer hat mich dieses fesche Ringmenü aus Secret of Mana und dessen billig "Wir resiclen unsere Engine nochmal" Abklatsch Secret of Evemore begeistert.

Nun will ich selber sowas für den GBA machen und habe mir daher mal überlegt wie das am besten geht ^^;

Also ich bin mir nicht sicher auf was Square damals die maximale Item Anzahl festgelegt hatte, aber ich denke es waren etwa 8 Items, drum machen wir uns einmal einen Ring als Struktur.

Was brauch der Ring? Im Prinzip folgendes:
- die 8 Item Bilder
- den Zeiger um die Items herrum

Also insgesammt 9 Pointer.
Wieviele Items davon dann genutzt werden ermitteln wir später ganz einfach indem wir schaun welche pointer alle auf 0 stehen. Die sind dann logischer Weise leer ^^

Ok. Dann verlange ich 9 Sprites! Hopp, hopp! Von miraus die letzten 9, ist mir doch egal.
Das ganze Handling wird dann so ablaufen das wir halt einen Globalen Parameter haben.

u8 rm_sprite_start;

Das kann ruhig eine Variable sein. Es gibt ja auch nur an welche Sprites im Sprite Index wir für das Menü benutzen. Wenn der User also dumm ist überschreibt er damit seine eigenen Sprites ^^


Achne!
Pi sollte es auch geben.

Kommen wir zu den Funktionen.

u8 showRMenue(u8 x, u8 y, ritem* ring);

Der Rückgabewert ist ein Flag das uns sagt wie der Ring beendet wurde.
- Durch verlassen nach oben?
- Durch verlassen nach unten?
- Durch Auswahl eines Items dessen ID (0-7 also) zurück gegeben wird.

Damit haben wir eigentlich alle Daten die wir brauchen. In der Funktion machen wir dann zuerst folgendes:

1.) Wir überprüfen wieviele Items wir überhaupt haben die angezeigt werden sollen.
2.) Wir schauen nach x und y ob der Ring dort überhaupt in voller Sichtbarkeit hin passt. Wenn nicht, nehmen wir den nächsten Punkt der passt.
3.) Wir schaufeln die Sprites und die dazu gehörigen Paletten per DMA in den OAM, also den Sprite Speicher, und setzen die Sprites aktiv.

4.) Dann gehen wir in eine Endlosschleife von Tastaturabfragen. Der Rest des Spieles ist in diesem Moment also
eingefrohren.

5.) Die Schleife geht zuende wenn ein Item ausgewählt wurde (a) oder hoch oder runter gedrückt wurde. Dann beendet sich auch gleich die ganze Funktion (gegebenen falls mit der Ring auf und Ring zu Animation).

6.) Links und Rechts bewirken einen Aufruf der links oder rechts Funktion und ein umschalten welches Item gewählt ist.



So, wie schon beschrieben brauchen wir also noch 4 Funktionen zusätzlich die folgende Animationen darstellen.

- Ring auf
- Ring zu
- Ring nach links
- Ring nach rechts

Das kann man auch innerhalb der Hauptfunktion schreiben, währe sogar stark ratsam.


Soviel zur Teorie. Diese Ring Funktion könnte mann dann quasi überall benutzen. Nett, gell?
Muss sie nurnoch einer zusammen coden ^^

Vllt mach ich das demnächst ja mal... Man könnte ja auch Animationen in das selektierte Item packen!
Mensch das währ cool ...



---------------------------------------------------

Ajo, vielleicht interessiert sich ja jemand für alte Secret of Mana Projekte ^^

Ich hab sie nochmal online gestellt
Source für VB und VC++ gibts auf Anfrage (falls ich ihn noch finde)

Die GBA Version startet irgend wann ma demnächst und wird wohl auch weiter gehen als die paar 2 Jahre alten Demos dort


http://tharo.cc-net.de/public/som/
__________________
Ney ney ney. So viel Sand und keine Förmchen

Code:
Hey DU! Join uns im PG Discord! https://discord.gg/SVqutfFpTc
Tharo ist offline   Mit Zitat antworten
Sponsored Links
Alt 09.09.2002, 16:43   #2
 
Registriert seit: 03.09.2002

maximAL hat die Renommee-Anzeige deaktiviert

Standard

hmm, es war nicht so ganz ersichtlich, ob du es so schon machen willst, also sag ich es einfach mal: am besten man erstellt den ring als linked list, deren letztes element wieder mit dem ersten gekoppelt ist. die funktion, die das ganze zeichnet bekommt immer den pointer auf das gerade ausgewählte item und geht dann die list durch, bis es wieder am anfang ist. imho ein sehr eleganter weg.

btw: SoE find ich viel besser als SoM
maximAL ist offline   Mit Zitat antworten
Alt 09.09.2002, 21:47   #3
ehem. Teammitglied
 
Benutzerbild von Tharo
 
Registriert seit: 02.09.2002
Ort: フランクフルト
Spielt gerade: FF7 Remake

Tharo wird schon bald berühmt werdenTharo wird schon bald berühmt werden

Standard

Solche Ites fordern in C eine Menge perfomace ein.

Ich bin der Meinung, dass wenn ich jeden Ring als ein Element einer eigenen struktur mache, dann kann ich da genauso leicht durch switchen wie wenn ich es als linked list mache.

Es ist ja wohl klar das die struktur nur pointer enthält aber halt kein Array ist. So kann der Progger flexibler festlegen welche grafiken er benutzen will.

Außerdem kann man dadurch das es ne eigene struckt ist schnell einen ganzen menübaum als einfaches eindimensionales array anfertigen.

Ich denke es ist so leichter, aber wir können ja gern mal beide coden und vergleichen
__________________
Ney ney ney. So viel Sand und keine Förmchen

Code:
Hey DU! Join uns im PG Discord! https://discord.gg/SVqutfFpTc
Tharo ist offline   Mit Zitat antworten
Antwort

  portablegaming.de > Allgemeines Spielehandheldforum, GBA, N-Gage und Development > Development Abteilung

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Selbst gemachtes Gizmondo Zeug... -sansuz- Allgemeines Spielehandheldforum 18 23.07.2005 10:07
altes GameGear Spiel Necris Retro 3 11.03.2003 15:40
altes Konsolenzubehör ultraviolet Retro 5 02.11.2002 18:43


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:23 Uhr.


Powered by vBulletin® Version 3.8.9 (Deutsch)
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.0
Template-Modifikationen durch TMS
PortableGaming.de © bk 2000 - 2010

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231