Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

11

20.03.2014, 13:02

Hi,

Ich stelle mal folgende Anregung - Struktur zur Diskussion:


Es gibt eine klasse die die Menüs verwaltet.
Diese hat 2 Container.
1. Menüs die offen sind.
2. Menüs die vorhanden sind.

Die vorhandenen Menüs können geöffnet werden, dann werden sie in beiden Containern aufbewahrt.

Bei der Aktualisierung werden alle offenen Menüs aktualisiert.
Wen man sie in der Reihenfolge Zeichnet und Events behandelt wie sie im Container 1. (Menüs die offen sind) liegen, kann man mehrere Menüs öffnen und übereinander legen und alles.

Voraussetzung ist eine Basisklasse für alle Menüs! Das hast du ja sinnvollerweise auch vor.

Die Menüs selber könnten ihrerseits Container einer Steuerelement-Basisklasse haben. Werden die Menüs refreshed oder gezeichnet tun sie selbiges mit ihren Steuerelementen.

Wird auf die Mens geklickt, prüft dieses allen in seinem Container Steuerelemente ob der Klick drauf ist.
Wenn ja passiert was.


Technisch noch angemerkt:
Eventuell lassen sich Callbacks mit Delegaten realisieren. C# ist nicht so meins.
So kann man dem Steuerelement wenn die Instanz erzeugt wird als Argument mitgeben was passieren soll. Das ist natürlich super für die spätere Nutzung.

Mag sein das die Zeigerarithmetik eine hübsche Menüverwaltung zulässt. Weiß nicht ob das eventuell in C# einen Hacken hat.
http://msdn.microsoft.com/de-de/library/y31yhkeb.aspx

... Nur als Anregung.
;)
Bilder zu meinem Projekt: ParSim

patrick246

Treue Seele

Beiträge: 328

Wohnort: nahe Heilbronn/BW

Beruf: TG Profil Informatik-Schüler

  • Private Nachricht senden

12

20.03.2014, 14:50

Klassen sind in C# normalerweise Referenztypen, da braucht es keine Zeiger, die es sowieso nur in unsafe-Bereichen gibt.

Toemsel

Treue Seele

Beiträge: 310

Wohnort: OÖ

Beruf: Student und Programmierer

  • Private Nachricht senden

13

20.03.2014, 16:07

Ich denke er ist durch den Input stark überfordert.
Mein Ratschlag. Schau dir allgemein das Prinzip eines Screenmanagers an

http://xbox.create.msdn.com/en-US/educat…oleplaying_game

LeBusch

Frischling

  • »LeBusch« ist der Autor dieses Themas

Beiträge: 81

Beruf: Student B.Sc. Informatik

  • Private Nachricht senden

14

20.03.2014, 18:07

Ich denke er ist durch den Input stark überfordert.
Könnte man so sagen, da ist einiges zusammengekommen.

Ich danke Euch allen für Eure Antworten, aus Zeitmangel werde ich mir wohl erst am Wochenende all eure Vorschläge in Ruhe durchlesen können. Falls ich dann noch Fragen haben sollte, melde ich mich! :)

15

21.03.2014, 08:49

Zitat


Zitat von »Toemsel«
Ich denke er ist durch den Input stark überfordert.

Könnte man so sagen, da ist einiges zusammengekommen.


Hä, was denn?
Meint ihr etwa das 5 Mal Klicken in der Sekunde ?(

Wenn ich annehme auf dem aktiven Menü sind 100 Steuerelemente.
Dann komme ich auf 500 Funktionsaufrufe. in der Sekunde.

Das ist ungefährt nichts! :pinch:

LG
Bilder zu meinem Projekt: ParSim

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

16

21.03.2014, 09:20

Ich glaube es ging eher darum, dass LeBusch viel zu lesen und zu verstehen hat. Nicht um User-Interaktionen in einem Programm.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

17

21.03.2014, 09:26

Ups, achso^^
Bilder zu meinem Projekt: ParSim

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

18

21.03.2014, 09:29

Zitat


Zitat von »Toemsel«
Ich denke er ist durch den Input stark überfordert.

Könnte man so sagen, da ist einiges zusammengekommen.


Hä, was denn?
Meint ihr etwa das 5 Mal Klicken in der Sekunde ?(

Wenn ich annehme auf dem aktiven Menü sind 100 Steuerelemente.
Dann komme ich auf 500 Funktionsaufrufe. in der Sekunde.

Das ist ungefährt nichts! :pinch:

LG

Ich glaube mal, dass mit "er" nicht sein Rechner gemeint ist, sondern derjenige, der das implementieren soll.
Und bitte keine unterschwellige Werbung für Elektronikhersteller. ;D
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

19

21.03.2014, 10:46

Wenn du eine statische Klasse verwendest, dann müssen die Methoden, welche du "statisch" verwenden willst ebenfalls statisch deklariert werden.
Eigentlich macht das ganze für ein Menü auch wenig Sinn. Statische Klassen/Methoden machen eigentlich mehr Sinn, wenn du von irgendwo aus deinem Quellcode heraus eine Helferfunktion benötigst, wofür du aber nicht explizit immer ein Objekt instantiieren willst. (Merke: jede neue Objektinstanz wird in den Memory geladen und verbraucht wieder etwas mehr Speicher. Außerdem muss der GC dann auch wieder irgendwann den ganzen "Müll" aufräumen).
Deshalb wäre folgende Methodik sinnvoller: Das Menü wird nicht-statisch deklariert und du erzeugst dir eine public-Instanz auf deinen GUI-Layer. Danach kannst du über deinen GUI-Layer das Menü aufrufen und somit auch deine Public-Methoden vom Menü verwenden.

Werbeanzeige