Aktuelle Zeit: 13.05.2025, 01:41

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
BeitragVerfasst: 16.04.2009, 17:26 
Offline

Registriert: 16.04.2009, 17:21
Beiträge: 3
Hey, ich arbeite mit n paar Klassenkameraden an nem Projekt, und bin grad dran die Auswählbarkeit von Nodes zu schreiben. Hab nun den MastEventReceiver (http://www.irrlicht3d.org/wiki/index.php?n=Main.MastEventReceiver) So als eigene Klasse übernommen, bekomme es aber nicht hin in der Main Schleife auf Ergebnisse des Masteventreceivers zuzugreifen. Ich will in der Main eine Schleife schreiben, die auf eine andere Klasse zugreift wenn die linke Maustaste gedrückt wird.
Danke schonma für die Hilfe
Lg
Edit: wir schreiben mit wxDev-C++, falls das wichtig is ;-)


Nach oben
 Profil  
 
BeitragVerfasst: 17.04.2009, 08:17 
Offline

Registriert: 12.09.2008, 21:41
Beiträge: 187
Wohnort: Deutschland
Moin,

also das sollte eigentlich ganz einfach sein indem du folgendes aufrufst:
Code:
// [...]
   MastEventReceiver receiver;
   receiver.init();
// [...]


dann noch hier den letzten Parameter beachtest:
Code:
// [...]
   device = createDevice( driverType, dimension2d<s32>(1024, 768),
      16, false, false, false, &receiver);
// [...]


und in der while Schleife:
Code:
// [...]
while(device->run())
{
   // [...]
   receiver.endEventProcess();
   // [...]
   if (receiver.leftMousePressed())
   {
      // format C:\ oder ähnliches :-)
   }
   // [...]
   receiver.startEventProcess();
   // [...]
}
// [...]


MfG
Scarabol

_________________
My Toolbox:
- Irrlicht 1.7.1
- Blender 2.49a
- Microsoft Visual C++ Express Edition 2008
- Newton Game Dynamics 2.xx
Regeln zur Programmierung:
Regel 1: Die Programmiersprache hat keine Fehler.
Regel 2: Solltest du doch einen Fehler finden, tritt automatisch Regel 1 in Kraft.


Nach oben
 Profil  
 
BeitragVerfasst: 17.04.2009, 11:53 
Offline

Registriert: 16.04.2009, 17:21
Beiträge: 3
Jo, es scheint zu funktionieren.
Bzw. ich versuche das mitm Koordinaten auslesen in ner eigenen Klasse zu machen, eben auf mausklick, aber nun fährt das bild einfach nach oben links(also die kamera) und aufn Mausklick hin passiert auch nichts -.-


Nach oben
 Profil  
 
BeitragVerfasst: 17.04.2009, 12:34 
Offline

Registriert: 12.09.2008, 21:41
Beiträge: 187
Wohnort: Deutschland
Hi,

also du müsstest ein wenig konkreter werden...

Was meinst du mit eigener Klasse?
Was soll bei einem Mausklick passieren?
Was für ein Bild?
Was für ne Camera und wo zum Geier ist oben links :-)

Gruß
Scarabol

PS
Falls es möglich ist, hilft ein Codeschnippsel hier noch am Besten weiter...

_________________
My Toolbox:
- Irrlicht 1.7.1
- Blender 2.49a
- Microsoft Visual C++ Express Edition 2008
- Newton Game Dynamics 2.xx
Regeln zur Programmierung:
Regel 1: Die Programmiersprache hat keine Fehler.
Regel 2: Solltest du doch einen Fehler finden, tritt automatisch Regel 1 in Kraft.


Nach oben
 Profil  
 
BeitragVerfasst: 19.04.2009, 11:24 
Offline

Registriert: 16.04.2009, 17:21
Beiträge: 3
Da das doch viel Code is, hab ich die Strategie-Kamera die mein Kollege erstellt hat und die main ma hochgeladen
(http://rapidshare.com/files/223157557/Src.rar.html)

Ich versuche ein Objekt "auswählbar" zu machen. Dazu hab ich nen Code Schnipsel, der die Koordinaten bestimmt, wenn ein Mauszeiger über einem bestimmten Mesh ist, ansonsten gibt er eine konstante zurück. Meine idee war, dieses Schnipsel in eine eigene Klasse zu machen, und diese Klasse eben nur aufzurufen wenn die Maustaste geklickt wird. wenn dann die konstante zurückgegeben wird passiert nichts, wenn ein Wert zurückgegeben wird, wird das Mesh halt heller oder so.

mit Bild meine ich einfach nur, dass sich die kamera in der laufenden Device einfach nach oben links bewege und sich nicht aufhalten lässt, egal was ich mache^^
Lg


Nach oben
 Profil  
 
BeitragVerfasst: 20.04.2009, 20:04 
Offline

Registriert: 12.09.2008, 21:41
Beiträge: 187
Wohnort: Deutschland
Hi,

also du könntest dir ja ne Klasse erstellen, mit einer update oder refresh Funktion die du dann bei jedem Hauptschleifendurchlauf aufrufst. So alla smgr->getCollisionManager()->getSceneNodeFromScreenPosition(), dann kannste damit deine Rückgabewerte steuern, wenn du die Werte dann aber sowieso außerhalb der Klasse verarbeitest, würde ich überlegen, ob es für den Anfang nicht auch eine einfache Funktion tut...

Wenn nicht solltest du dir eine Mesh oder Einheit oder Spielfigur Klasse erstellen, die dann selbstständig in ihrer Update Funktion prüft, ob die Maus sich ihr genähert hat, oder angeklickt wurde ect. und dann alles intern in dieser Klasse abarbeiten...

Gruß
Scarabol

_________________
My Toolbox:
- Irrlicht 1.7.1
- Blender 2.49a
- Microsoft Visual C++ Express Edition 2008
- Newton Game Dynamics 2.xx
Regeln zur Programmierung:
Regel 1: Die Programmiersprache hat keine Fehler.
Regel 2: Solltest du doch einen Fehler finden, tritt automatisch Regel 1 in Kraft.


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de