JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=e43662ffa6354530f160e3224d076bb2Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Fadenkreuz
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
schneidi74
Senior JLI'ler



Anmeldedatum: 14.05.2004
Beiträge: 243

Medaillen: Keine

BeitragVerfasst am: 16.05.2004, 16:44    Titel: Fadenkreuz Antworten mit Zitat

Tachchen,

ich will in einen Spiel ein Fadenkreuz (Sprite) bewegen und hab mit Direct Input und der Erklärung von Christians Buch die Mousebehandlung gemacht. Allerdings ruckelt das wie Sau. Hat jemand ne Idee was ich verkehrt mache?
_________________
-+- SchNeiDi74 -+-
-+- www.creative-games.de -+-
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 16.05.2004, 16:58    Titel: Antworten mit Zitat

Nein weil wir nicht wissen, WIE du es machst ;) Zeig doch mal den relevanten Source Code, dann können wir dir besser helfen.
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 16.05.2004, 17:15    Titel: Antworten mit Zitat

Ich kann mir schon denken woran es liegt. Das ist so ne Sache mit der Mausabfrage, die wird meiner Meinung nach im Buch vollkommen unzureichend erklärt (kleine Kritik, aber das Buch ist trotzdem super).
Da wurde schon so oft in diesem Forum drüber geschrieben.
Ich denke es liegt daran das du GetDeviceData statt GetDeviceState benutz.
Gibt einfach mal in der Forensuche:
Maus
GetDeviceState
GetDeviceData
DirectInput
oder so was in der Art ein. Dann findest du bestimmt die Antwort!
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
schneidi74
Senior JLI'ler



Anmeldedatum: 14.05.2004
Beiträge: 243

Medaillen: Keine

BeitragVerfasst am: 17.05.2004, 16:20    Titel: Antworten mit Zitat

Mensch danke für die Antwort, funktioniert einwandfrei!!! Hast mir wirklich weitergeholfen! Dank Dir!!! Very Happy
_________________
-+- SchNeiDi74 -+-
-+- www.creative-games.de -+-
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 17.05.2004, 17:42    Titel: Antworten mit Zitat

Gern geschehen Wink
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
schneidi74
Senior JLI'ler



Anmeldedatum: 14.05.2004
Beiträge: 243

Medaillen: Keine

BeitragVerfasst am: 17.05.2004, 18:31    Titel: Antworten mit Zitat

Na eine Frage hätt ich doch noch. Ich hab das jetzt folgendermaßen gelösst:

Code:
    ZeroMemory(&data,sizeof(data));

    if(FAILED(m_lpDIDevice->GetDeviceState(sizeof(data),&data)))
    {
        // die Mouse wurde zwischenzeitlich
        // von einer andere Anwendung genutzt
        // Kontrolle wiederholen
        m_lpDIDevice->Acquire();
        return 0;
    }

   MouseX += data.lX;
   MouseY += data.lY;


Wenn ich da eine if abfrage mache ob das noch innerhalb der Bildschirmgröße ist und er in die nähe des randes kommt mach er von Zeit zu Zeit mit dem bewegten Sprite einen kleinen Ruckler bevor er zum Rand richtig ran geht.

Ich frag's auf diese Art und Weise ab (nur Beispiel für links):
Code:

   if(MouseX +data.lX > 0)
   {
      MouseX += data.lX;
   }

Was ist verkehrt?
_________________
-+- SchNeiDi74 -+-
-+- www.creative-games.de -+-
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Chewie
Super JLI'ler



Anmeldedatum: 17.07.2003
Beiträge: 382

Medaillen: Keine

BeitragVerfasst am: 17.05.2004, 18:48    Titel: Antworten mit Zitat

erstmal solltest du die framerate in die berechnung der neuen koordinaten reinnehmen...sonst bewegt sich die maus auf verschiedenen rechner verschieden schnell...steht eh im buch.

woher der ruckler genau kommt, weiß ich auch nicht...ich würd aber die neuen koordinaten normal berechnen und dann am ende einen check in der art einbauen:
Code:

if (mouseX > 800)
  mouseX = 800;
else if (mouseX < 0)
 mouseX = 0;
.
.
.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
=]Mid[=]Night[=
Super JLI'ler



Anmeldedatum: 20.11.2002
Beiträge: 380
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 17.05.2004, 18:48    Titel: Antworten mit Zitat

am besten schreibst du noch ein else

Code:

   if(MouseX +data.lX > 0)
   {
      MouseX += data.lX;
   }
   else
   {
      MouseX = 0;
   }
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
schneidi74
Senior JLI'ler



Anmeldedatum: 14.05.2004
Beiträge: 243

Medaillen: Keine

BeitragVerfasst am: 17.05.2004, 18:57    Titel: Antworten mit Zitat

Jungs, Ihr seit Spitze!! Funktioniert!
_________________
-+- SchNeiDi74 -+-
-+- www.creative-games.de -+-
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
=]Mid[=]Night[=
Super JLI'ler



Anmeldedatum: 20.11.2002
Beiträge: 380
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 17.05.2004, 19:00    Titel: Antworten mit Zitat

klar sind wir spitze und klar funzt des Wink

am unteren / rechten rand klappts auch ?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
schneidi74
Senior JLI'ler



Anmeldedatum: 14.05.2004
Beiträge: 243

Medaillen: Keine

BeitragVerfasst am: 17.05.2004, 19:11    Titel: Antworten mit Zitat

noch nicht getestet. Zerbrech mir gerade den Kopf mit 3D Studio Max (wahrscheinlich bis zu dem Moment wo ich auf den Monitor eindresche).

Sollte es noch weitere Probs geben mit dem Source werd ich mich sicher melden !!! Very Happy
_________________
-+- SchNeiDi74 -+-
-+- www.creative-games.de -+-
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 17.05.2004, 19:35    Titel: Antworten mit Zitat

Nur da mit der Framerate ist meiner Meinung nach Blödsinn. Denn die Funktion ist ja gerade dazu da, die relative mausposition seit der letzten Bewegung zu bekommen. Da ist es dann egal ob die letzte Abfrage 1 Sekunde oder 1/1000 Sekunde zurücklieg.
Und mit der Randabfrag mach ich das immer so:
x+=rel. XPos
y+=rel. YPos
if(x<0) x=0
if(x>800) x=800
if(y<0) y=0
if(y>600) y=600
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 17.05.2004, 19:38    Titel: Antworten mit Zitat

Über das Thema Maus mit DirectX wurde in diesem Forum schon so viel geschriebn.
Wie wärs wenn einer der moderatoren mal einen StickyPost machen würde, wo mal Links zu den wichtigsten Threads drinstehen.
Ich dewnke das würde vielen Neun helfen, da sie nicht immer auf Antworten warten müssten. So ne Art FAQ-Liste wäre sowieso mal nicht schlecht.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
schneidi74
Senior JLI'ler



Anmeldedatum: 14.05.2004
Beiträge: 243

Medaillen: Keine

BeitragVerfasst am: 17.05.2004, 19:58    Titel: Antworten mit Zitat

Ich denke das mit der FAQ Liste wird nicht so einfach umzusetzen sein, weil es ja doch jede Menge Fragen gibt. Ich meine ich bin noch sehr am Anfang mit c++ Programmierung und ich hätte Millionen Fragen. Nur wer soll das alles in eine Liste tippen? Schön wärs allerdings schon. Soetwas wie ein Online-Nachschlagewerk...

Aber eins muss ich ja nochmal los werden. Ich hab hier nie lange auf Antworten warten müssen! Dazu erstmal Hut ab! Vor allem das hier auch Neueinsteigern einwandfrei geholfen wird ist spitze!
_________________
-+- SchNeiDi74 -+-
-+- www.creative-games.de -+-
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
fowly
JLI'ler



Anmeldedatum: 25.01.2004
Beiträge: 196
Wohnort: Detmold - NRW
Medaillen: Keine

BeitragVerfasst am: 17.05.2004, 20:25    Titel: Antworten mit Zitat

also, soweit ich weiß arbeitet blacklordofdragons doch an einer online-tutorial seite, also wenn ihr fragen habt, tutorials wollt oder eben ein solches dxinput faq wollt, schickt ihm das doch mal, dann haben andere nach euch auch noch was davon.

Link: http://www.online-tutorials.net
_________________
<-- Noch in der Entwicklungsphase: http://www.uranus-entertainment.de -->

Das Spiel zu unserer Schule:

http://www.grabbe-game.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik Alle Zeiten sind GMT
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum