Aktuelle Zeit: 23.12.2024, 10:50

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 17 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: [.Net Cp] Irrlicht In Windows Form
BeitragVerfasst: 02.06.2008, 20:42 
Offline

Registriert: 24.05.2008, 13:41
Beiträge: 151
Wohnort: Marienhafe
Hi, ich hab bei c# ein problem mit dem Windowsformen. Ich hab es wie in den Tutorial gemacht, und wollte der TabPage dann ein Ereignis geben (Click), um dadrin erstellte Waypoints auszuwählen.
Allerdings funktioniert der Klick nicht, ich denke mal das liegt an dem Device?
Wie kann ich sonst ein event in der Box festlegen?


Nach oben
 Profil  
 
BeitragVerfasst: 03.06.2008, 16:48 
Offline

Registriert: 27.03.2007, 16:53
Beiträge: 33
Wohnort: Chemnitz
wow wow....schön langsam...
*confus*

Was hast du für ein Problem?
1.Das das Event von den Windows.Forms Tabpage bei MausKlick nicht feuert?
2.Oder hast du ein Problem das das Irrlicht Event nicht feuert?

Und ob du auf ein Steuerelement Klick's das merkt/weiß Irrlicht nicht...
weil es nichts mit der Engine zu tun hätte.


zu 1.dazu solltest du dich mit der Probrammierung .Net Windows Forms allgemein auseinandersetzen...
denn das ist kein Irrlicht-Problem... (sei denn du hast die Render-Loop im Form_Load)
Code:
      private void tabControl1_MouseClick(object sender, MouseEventArgs e)
      {
      }


zu 2.werden die anderen Irrlicht-Events ausgelöst? (Tasten-Druck, etc. ?)
Code:
      public bool device_OnEvent(Event ev)
      {
         switch (ev.Type)
         {
            case EventType.KeyInputEvent:
              if (ev.KeyPressedDown && ev.KeyCode == KeyCode.Escape) StopApplication = true; return true;
            //case EventType.MouseInputEvent: break;
            //case EventType.LogTextEvent: break;
            default: return false;
         }   
      }

_________________
Develop On System:
-WindowsXP Prof.
-Microsoft .NET2005 | Framework2.0 (C#)
-using IrrlichtNetCP (.NET Wrapper for Irrlicht)

<<Because it makes FUN>>


Nach oben
 Profil  
 
BeitragVerfasst: 03.06.2008, 20:59 
Offline

Registriert: 24.05.2008, 13:41
Beiträge: 151
Wohnort: Marienhafe
Also mir gehts darum, das ich ein Event (tabPage1_Click) erstellt hab (Also wohl das 1.), aber dies nicht klappt.
Allerdings klappt es, wenn ich z.b. gar nix darein mache, und dann darauf klicke (nun hab ich ja die render box) darin^^.

Daher wird man das wohl mit der 2. Lösung lösen müssen oder? XD
Ach ich bin so schlecht in erklären was ich meine :P


Nach oben
 Profil  
 
BeitragVerfasst: 03.06.2008, 22:17 
Offline

Registriert: 22.04.2007, 13:12
Beiträge: 53
Nunja wenns ein WindowsControl ist dann könnte es sein das es einfach nicht die Befehle (Den Klick übermittelt bekommt) weil dein Programm in der While Schleife festhängt :P
Hab keine Ahnung wie das unter C# läuft aber bei VB.Net reicht in der Regel ein DoEvents vor der Schleife und er macht alles ;)

_________________
Progammiersprache: VB.NET 2005
Irrlichtversion: Irrlicht.Net CP 0.8


Nach oben
 Profil  
 
BeitragVerfasst: 04.06.2008, 07:27 
Offline

Registriert: 27.03.2007, 16:53
Beiträge: 33
Wohnort: Chemnitz
japp das mit den DoEvents wäre ne Lösung.

Ich habe jetzt mal schnell das Tutorial von thuglife
nach gebaut und es geht ohne Problem, also man brauch keine DoEvents und alle Klick-Events von den Steuerelementen werden abgefeuert...

hier ist die Test-Anwendung:nicht mehr vorhanden

Hoffe das Hilft und das ist was du meinst ;)

_________________
Develop On System:
-WindowsXP Prof.
-Microsoft .NET2005 | Framework2.0 (C#)
-using IrrlichtNetCP (.NET Wrapper for Irrlicht)

<<Because it makes FUN>>


Zuletzt geändert von JDHunter am 09.04.2009, 09:53, insgesamt 1-mal geändert.

Nach oben
 Profil  
 
BeitragVerfasst: 04.06.2008, 13:18 
Offline

Registriert: 24.05.2008, 13:41
Beiträge: 151
Wohnort: Marienhafe
Also ne buttons gehen ja, naja warte ich erklärs nochmal mit screenshots :P

Also mein Fenster sieht jetzt ca so aus:
http://www.jka3.de/cwe_6.JPG

Buttons etc gehen alle^^.
Nur möcht ich im Render Fenster (Die Welt) Auf einen der Meshes klicken, um diesen zu "Aktivieren" (wie unten links schon einer aktiviert wurde xD)

Ich hatte das erst so geschrieben, das man nur darüber mit der Maus kommen muss, das war auch kein problem. Nun wollte ich einfach nur, das das erst durch einen klick auf dem Wegpunkt ausgeführt wird.
Aber das scheint mit einem einfach Event nicht zu gehen.
(Der Event ist wie in der Beispielsdatei, nur für die TabPage)


Nach oben
 Profil  
 
BeitragVerfasst: 04.06.2008, 14:22 
Offline

Registriert: 27.03.2007, 16:53
Beiträge: 33
Wohnort: Chemnitz
:D ok ich glaube du meinst das "CollisionManager.GetSceneNodeFromScreenCoordinates"
und hier noch nen kurzer hack, so ähnlich sollte es gehen.
und zwar wird im irrlicht ein event gefeuert.
es wird aber nur der MouseInput && MouseClick etc. abgefangen.
Dann wird anhand der MousePosition der CollisionsManager gefragt ob sich dort ein SceneNode befinden... so oder so ähnllich ;)

Ich hoffe jetzt kannst du damit was anfangen?!
oder brauchst noch nen richtiges Beispiel? (kuckst du hier)
Code:
public bool device_OnEvent(Event ev)
{
    switch (ev.Type)
    {
          case EventType.MouseInputEvent:
          // .....
          // .....
              //check, who is in my click-area and get him
              SceneNode _tmp_picked = _scene.CollisionManager.GetSceneNodeFromScreenCoordinates(mousepos, 0, false);
              if (_tmp_picked != null) //object picked?
              {
                 //do anythink
                 //change material color?!
              }
           break;
    }
}



PS: schickes GUI.... wie macht man sowas? oder wo findet man solche Form Änderung?

_________________
Develop On System:
-WindowsXP Prof.
-Microsoft .NET2005 | Framework2.0 (C#)
-using IrrlichtNetCP (.NET Wrapper for Irrlicht)

<<Because it makes FUN>>


Nach oben
 Profil  
 
BeitragVerfasst: 04.06.2008, 14:34 
Offline

Registriert: 24.05.2008, 13:41
Beiträge: 151
Wohnort: Marienhafe
Wegen des Gui: Das ist von ComponentOne, hab ich von mein vater :P
Das ist nen ganzer paken mit solchen dingen XD Aber hab ja eh nur das oben davon eingebaut. (Allgemeine Option werden übrigends eingestellt, wenn man auf den kreis links klickt, hier nochn screen, falls dich das interessieren sollte xD
( http://www.jka3.de/cwe_8.JPG ) (Weites kannste noch einfach da nachlesen: http://www.componentone.com/Products/Wi ... ibbon.aspx
Wurde übrigends auch bei office 2007 verwendet^^ )


Fehler 1 "ChronosWorldEditor.Form1.IDevice_OnEvent(IrrlichtNETCP.Event)": Nicht alle Codepfade geben einen Wert zurück.

Bei dem Code von gerade eben kommt allerdings das heraus :P?


Zuletzt geändert von Mainclain am 04.06.2008, 14:52, insgesamt 2-mal geändert.

Nach oben
 Profil  
 
BeitragVerfasst: 04.06.2008, 17:07 
Offline

Registriert: 27.03.2007, 16:53
Beiträge: 33
Wohnort: Chemnitz
danke,

ja richtig da fehlen die return's (war on the fly)
und der code sollte nur das veranschaulichen,

so oder so ähnlich...xD
Code:
public bool device_OnEvent(Event ev)
{
    switch (ev.Type)
    {
          case EventType.MouseInputEvent:
          // .....
          // .....
              //check, who is in my click-area and get him
              SceneNode _tmp_picked = _scene.CollisionManager.GetSceneNodeFromScreenCoordinates(mousepos, 0, false);
              if (_tmp_picked != null) //object picked?
              {
                 //do anythink
                 //change material color?!
              }
           return true;
           break;
    }
    return false;
}

_________________
Develop On System:
-WindowsXP Prof.
-Microsoft .NET2005 | Framework2.0 (C#)
-using IrrlichtNetCP (.NET Wrapper for Irrlicht)

<<Because it makes FUN>>


Nach oben
 Profil  
 
BeitragVerfasst: 04.06.2008, 17:54 
Offline

Registriert: 24.05.2008, 13:41
Beiträge: 151
Wohnort: Marienhafe
hmm irgentwie ist das break fehl am platz :P
Geht trotzdem net :/


Nach oben
 Profil  
 
BeitragVerfasst: 05.06.2008, 17:40 
Offline

Registriert: 27.03.2007, 16:53
Beiträge: 33
Wohnort: Chemnitz
?! Ich dachte eigentlich eine bisschen pseudo code würde reichen um dir zu helfen...?
was geht denn nicht? der code? oder immer noch die event von irrlicht?

also nochmal... gehen bei dir überhaupt die events?
Wie lange entwickelst du schon mit .NET C#? und wie lange mit Irrlicht?

_________________
Develop On System:
-WindowsXP Prof.
-Microsoft .NET2005 | Framework2.0 (C#)
-using IrrlichtNetCP (.NET Wrapper for Irrlicht)

<<Because it makes FUN>>


Nach oben
 Profil  
 
BeitragVerfasst: 05.06.2008, 18:11 
Offline

Registriert: 24.05.2008, 13:41
Beiträge: 151
Wohnort: Marienhafe
Edit: Okay das hat sich erledigt^^ Hab es geschafft :P

Aber ist es normal, das die Kamera danach nicht mehr geht? Ich benutzt zz die Maya kamera, muss ich nun ne eigene erstellen, oder...?


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 17 Beiträge ]  Gehe zu Seite 1, 2  Nächste

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


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