Aktuelle Zeit: 29.04.2024, 00:59

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Mauszeiger
BeitragVerfasst: 20.11.2009, 18:34 
Offline

Registriert: 07.10.2008, 17:41
Beiträge: 23
Weiß jemand, wo im Irrlicht SDK definiert ist, das nach jedem Maus-Event, der Zeiger aktualisiert wird? Ich versuche nämlich zurzeit den Zeiger mit SetCursor darzustellen (das klappt auch gut ). Bei Animationen jedoch springt der Cursor bei jeder Mausbewegung zurück zum Ausgangspunkt.

wer echt toll, wenn einer das wüsste.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Mauszeiger
BeitragVerfasst: 20.11.2009, 19:22 
Offline
Benutzeravatar

Registriert: 17.04.2007, 08:42
Beiträge: 460
Wohnort: Willich, NRW
Das Problem ist leicht schlecht formuliert. Und ich weiß auch nicht was du im "Irrlicht SDK" willst. Wenn du die engine ändern und kompilieren willst, dann viel Spaß. aber ich kann mir vorstellen, dass es weit aus einfacher geht, so mit einer klaren Problembeschreibung und etwas source, passiert da vllt ein Wunder ;)

mfg heck

_________________
Bild

Irrlicht - From Noob To Pro A Guideline

--

Sonstige Projekte, Blog : http://www.rpdev.net


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Mauszeiger
BeitragVerfasst: 26.11.2009, 19:05 
Offline

Registriert: 07.10.2008, 17:41
Beiträge: 23
Ich habe es mittlerweile gefunden. Funktioniert gut. Musste dafür aber wirklich ins SDK eingreifen. Für wen es interessiert:
In IrrDeviceWin32.cpp (oder so) habe ich ide Parameter für Wndclassex geändert. Ich habe dabei die Zeile mit hCursor geändert:
hCursor = NULL
Damit braucht man nur noch SetCursor() aufrufen (am besten kurz nach CreateDevice()) und schon hat man seinen eigenen Cursor. Das kann ein animierter sein und ein statischer (dann braucht man nicht mehr so kompliziert zu machen)

Aber ich stehe vor einem anderen Problem, das nichts damit zu tun hat.
Wenn ich einen stringw mit Inhalt fülle, kann ich manchmal nichts mehr hinzufügen (die Funktion append() wird dabei eigentlich durchführt, aber es lässt sih kein Buchstabe mehr anfügen)
Das Merkwürdige ist, dass es immer an der gleichen Stelle passiert und immer nur dort.
Ich habe schon verschiedene Dinge versucht. Ich weiß nicht, ob der Code da so viel hilft, weil es ein sehr umfangreicher ist.
Code:
stringw value;
   for (int i = 0; i < NUM_ERAS; i++)
   {
      if (m_bonus[i].iBonusType != -1)
      {
         switch (m_bonus[i].iBonusType)
         {
         case 0:
            value += TXT->getText(38); break;
         case 1:
            value += TXT->getText(39); break;
         case 2:
            value += TXT->getText(40, (stringw)m_bonus[i].Data2, (stringw)m_bonus[i].Data1); break;
         case 3:
            value += TXT->getText(41, (stringw)m_bonus[i].Data1, (stringw)m_bonus[i].Data3, (stringw)m_bonus[i].Data2); break;
         case 14:
            value += TXT->getText(40, (stringw)m_bonus[i].Data2, (stringw)m_bonus[i].Data1); break;
         case 15:
            value += TXT->getText(41, (stringw)m_bonus[i].Data1, (stringw)m_bonus[i].Data3, (stringw)m_bonus[i].Data2); break;
         

Das Problem ist halt, dass in manchen Fällen value nur den wert vom ersten Durchlauf der Schleife annimmt.
(getText gibt einen Text zurück, den ich aus XML-Dateien ausgelesen habe)


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Mauszeiger
BeitragVerfasst: 27.11.2009, 03:20 
Offline
Benutzeravatar

Registriert: 17.04.2007, 08:42
Beiträge: 460
Wohnort: Willich, NRW
Kann nur wirklich raten, aber hast du auch einen defaultbranch in deiner switchanweisung, bzw. kann es sein, dass manchmal gar kein casezweig erfüllt wird? Kannst ja auch mal spaßeshalber den Wert von m_bonus[i].iBonusType ausgeben lassen um das sicher zu stellen.

_________________
Bild

Irrlicht - From Noob To Pro A Guideline

--

Sonstige Projekte, Blog : http://www.rpdev.net


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 27.11.2009, 18:06 
Offline

Registriert: 07.10.2008, 17:41
Beiträge: 23
Das Problem ist weniger, dass m_bonus keine wahren Werte annimmt, das habe ich schon gecheckt.
Ich glaube eher, dass es etwas mit der Version 1.6 zu tun hat. Ich durchforste mal das Changelog.


Ich habe das Problem jetzt gelöst. Es war ein kleiner Fehler in der Funktion getText(), da habe ich bei der 3. Überladungen etwas falsch gemacht, wodurch der Fehler nur manchmal vorkam.


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

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 10 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