BlackBoard » Design, Programmierung & Entwicklung » Programmieren » [Logik] Spiel programmieren » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen [Logik] Spiel programmieren
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Champus Champus ist männlich
BlackBoarder


images/avatars/avatar-2272.png

Dabei seit: 24.03.2002
Beiträge: 1.649
Herkunft: Karlsruhe

[Logik] Spiel programmieren       Zum Anfang der Seite springen

Servus,
ich glaub ich hab mir ein Denk-ohrwurm eingefangen. Ich überlege jetzt schon seit 2 Tagen über ein (vlt. meinerseits) Problem mit einer Gewissen Logik beim Spieleprogrammieren.
Und zwar geht es mir darum, dass wenn man z.B. in 3D Studio Max ein Modell erstellt hat, dieses Modell in ein neues Spiel einzufügen. Vielleicht schwer verständlich, deshalb mal ein Beispiel:
Sagen wir, ich habe einen Hubschrauber gemodellt, der der seine Propellor (richtig geschrieben? anm. d. Autors) drehen kann. Jetzt code ich mir ein Spiel, in dem man auf den Hubschrauber klicken kann (man sieht ihn von aussen, ähnlich wie bei C&C Generals o.ä.), und der Hubschrauber anfängt, seine Propellor zu drehen. So als wenn er starten will.
Das alles direkt als Animation, also in 3D Studio Max als Film zu rendern, ist kein Problem, aber ich wüsste nicht, wie man es "Interaktiv" "programmiert", dass der Propeller bei der hubschrauberanwahl rotiert. Ich hoffe ihr versteht mein Problem.
Jetzt mal direkte Fragen dazu, dass vorher war nur dass aussen rum:

- Wie wird das Objekt (der Hubschrauber) in das Spiel eingebunden, also die Modelldatei aufgerufen?
- Wie wird der Hubschrauber so programmiert, dass sein Propellor bei einem Klick rotiert?
- Könnt ihr mir da vielleicht direkt ein Codebeispiel zu geben (Programmiersprache ist egal)?

__________________
CorvusCorone -> Champus
01.06.2004 17:12 Champus ist offline Homepage von Champus Beiträge von Champus suchen
MyK
Headbanger


Dabei seit: 24.01.2002
Beiträge: 84

      Zum Anfang der Seite springen

Zitat:
- Wie wird der Hubschrauber so programmiert, dass sein Propellor bei einem Klick rotiert?


So was nennt sich Event-Driven-Programming. Dein Objekt Hubschrauber stellt dann eine Aktion zur Verfügung (hier: Rotation des Propellers), und die GUI ist dann ein Subscriber dieser Aktion. Wenn dann ein Click an der richtigen Stelle geschieht, wird die Aktion ausgeführt.

Wie man das genau implementiert, kann ich dir momentan noch nicht sagen. Habe selbe noch kein Projekt in der Art geschrieben, aber schau doch mal unter Google. Da findest du sicher was zum Stichwort 'Event-Driven-Programming'

__________________
Success consists of simply getting up one more time than you fall down.
04.06.2004 17:13 MyK ist offline Beiträge von MyK suchen
Compuholic Compuholic ist männlich
knows where he wants to go tomorrow


images/avatars/avatar-552.jpg

Dabei seit: 19.10.2002
Beiträge: 819
Herkunft: München

      Zum Anfang der Seite springen

Du brauchst eine Engine, die die Modelle von 3dStudioMAX lesen kann. Ich glaube die Genesis 3d Engine kann das.
Ich habe 3DStudioMAX noch nie benutzt aber ich vermute mal, daß das ähnlich läuft wie bei Milkshape 3d. Du fügst eine Animation in das Modell ein (nur auf Drahtgitterebene, keine Animation rendern lassen). Dann kannst Du in der Engine auf ein bestimmtes Ereignis hin (deinem Klick) diese Bewegung starten. Normalerweise funktioniert das nach dem folgenden Prinzip.


Du hast eine Programm-Hauptschleife in der bei jedem Durchlauf die Szene erst als Modell berechnet wird und danach wird die Szene gerendert. Du hast eine Variable, die die verstrichene Zeit seit dem letzten Schleifendurchlauf festhält. Aufgrund dieser Zeit kannst Du dann die Veränderungen der Positionen berechnen. Bei Genesis3d gibt es eigene Funktionen für die Bewegung von Objekten (z.B. SetPose(blah, blah, blah) ). Dieser Funktion übergibt man dann das Zeit-Offset der Bewegung und die sucht automatisch die richtige Stellung des Objektes heraus.

Lade Dir mal die Genesis3d Engine und ProjectX (das ist ein Framework für Spiele mit der Genesis Engine in C geschrieben). Da ist Beispielcode en Masse dabei.
07.06.2004 11:42 Compuholic ist offline E-Mail an Compuholic senden Homepage von Compuholic Beiträge von Compuholic suchen
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
BlackBoard » Design, Programmierung & Entwicklung » Programmieren » [Logik] Spiel programmieren

Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH