Frage zum Programmfluss

Previous topic - Next topic

Beginner

Heute habe ich mal eine ganz allgemeine Frage zur Programmierung:

In vielen modernen Programmen ist die grafische Darstellung sehr dynamisch. Alles ist animiert:

z. B. ein Hauptmenü
- im Hintergrund ist eine Landschaft zu sehen, Wolken fliegen vorbei, Tiere laufen durchs Bild
- das Interface ist animiert (Buttons werden größer und fangen an zu wackeln oder wippen, wenn ich mit der Maus drüberfahre. Sie verkleinern sich wieder, wenn der Mauszeiger den Button verlassen hat)

Bei einem Wechsel zwischen Bildschirmen (z.B. vom Hauptmenü in die Optionen) gibt es animierte Effekte (ein Vorhang fällt zu und geht langsam wieder vor dem neuen Bildschirm auf)

Jetzt meine Frage: Wie realisiert ihr sowas?  (ich meine nicht die grafische Darstellung, sondern dass das Programm 60x pro Sekunde genau weiss, welcher Button gerade in welchem Winkel kippt und wie gezoomt ist etc.) :-[

Muss ich da wirklich tausende von "Zuständen" speichern? Da merkt man erstmal, wieviel Arbeit selbst in einem einfachen Spiel stecken kann...   :o

Ihr habt doch sicher einen Trick um den Aufwand zu minimieren, oder?

Schranz0r

Das was du meinst sind meist Flash Animationen, die sind einfach zu machen dank Motion Tween!
Man kann irgendwie Flash in C++ einbinden, dass hat das neue CounterStrike auch gemacht, aber wie...
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

D2O

Wieso ist das Flash???

@Beginner

Ja, im grunde sind das viele Codezeilen...
Aber, schau Dir mal "Types" oder Funktionen an.
Hier kannst für vielesl eine "Grundschablone/funktion" erstellen, z.B der "Playbutton" soll die Farbewechseln.
Nun musst Du "nur" noch abfragen wo die Mouse ist und sollte sie sich auf den Koordinaten von dem Button befinden
wird die erstellte funktion dafür aufgerufen.

Diese Funktion kannst Du dann auch für andere Buttons benutzen.
So sparst Du Dir viel Arbeit.
I7 2600K; 8 GB RAM ; Win10 Pro x64 | NVidia GTX 750 TI 2048MB ; Realtec OnBoard Sound;
Lenovo ThinkPad T400: XP Pro
GLB Premium-immer Aktuell

Schranz0r

Die aufwändigen Menus sind in heutigen Spielen in Flash gemacht :)
Wer schreibt 1000 Zeilen Code nur fürs Menu? :D
Der Aufwand zum Nutzen passt nicht.
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

kanonet

Beginner, du darfst nicht jedes Item für sich betrachten und es aufwändig programmieren, dann ist das Menü ja mehr Arbeit als das Spiel. Nutze die von D2O vorgeschlagenen Methoden, entwickle z.B. nur einen Button-Type der das Verhalten (wackeln, bei hower etc.) einprogrammiert bekommt und verwende den Typ dann um alle Button zu erzeugen. Im Grunde ist das recht einfach und schnell erstellt, dann noch etwas animierten Hintergrund dazu, wenn man auf soetwas steht und fertig ist das Menu. Ist wirklich nicht sehr aufwändig, wenn man einheitliche Types nutzt. Und immer daran denken, das wichtige ist das Spiel, nicht das Menü, als setze deine Kräfte sparsam ein.
Lenovo Thinkpad T430u: Intel i5-3317U, 8GB DDR3, NVidia GeForce 620M, Micron RealSSD C400 @Win7 x64

Schranz0r

kanonet sagt es,konzentrier dich aufs Spiel, das Menu ist das, was du als letztes machen solltest :D
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard