Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
X-FILE Super JLI'ler
Anmeldedatum: 12.07.2003 Beiträge: 349
Medaillen: Keine
|
Verfasst am: 06.08.2003, 14:53 Titel: |
|
|
Scheint es, als ob dein Rechner zu langsam waere fuer die Mausabfrage? Ruckelt und zuckelt es meine ich gar entsetzlich, so als ob 100% Prozessorauslastung vorhanden waere? Oder wie meintest du das mit krackseln
EDIT:
Noch ne Frage. Wie initialisierst du die Devicedaten? Mit GetDeviceState, oder GetDeviceData? Selbes Problem hatte ich naemlich auch wieder  |
|
Nach oben |
|
 |
Hazel JLI MVP


Alter: 40 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 06.08.2003, 15:10 Titel: |
|
|
Ein Delta beschreibt, umwieviel sich eine Variable verändert hat. z.B. bei der Position eines Objektes wäre das:
deltaPos = neuPos - altPos _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
 |
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 06.08.2003, 15:17 Titel: |
|
|
@Hazel: dann ist es ja so wie ich geschrieben hab, aber was ist jetzt mim ALgo?
Nee mein Rechner ist nict zu lahm 1700XP+ und ich hab 58 fps
Code: |
bool DD_INPUT_ENGINE::Init_Mouse(HWND hWnd)
{
// Erstellen des Maus-Interface
if(FAILED(Object_lpDI->CreateDevice(GUID_SysMouse,&Object_lpDIDevice_Mouse,NULL)))
{
Error("Fehler - beim Erstellen des Maus-Objekts");
return true;
}
// Datenformat stezen
if(FAILED(Object_lpDIDevice_Mouse->SetDataFormat(&c_dfDIMouse)))
{
Error("Fehler - beim Setzen des Datenformats der Maus");
return true;
}
// Kooperationsebene setzen
if(FAILED(Object_lpDIDevice_Mouse->SetCooperativeLevel(hWnd,
DISCL_FOREGROUND |
DISCL_NONEXCLUSIVE)))
{
Error("Fehler - beim festlegen der Kooperationsebene der Maus");
return true;
}
// Eigenschaften für das Gerät festlegen (Puffergröße)
DIPROPDWORD DIProperties;
ZeroMemory(&DIProperties,sizeof(DIProperties));
DIProperties.diph.dwSize = sizeof(DIPROPDWORD);
DIProperties.diph.dwHeaderSize = sizeof(DIPROPHEADER);
DIProperties.diph.dwObj = 0;
DIProperties.diph.dwHow = DIPH_DEVICE;
// Puffergröße wird in Dateneinheiten festgelegt
DIProperties.dwData = 16;
// Puffergröße für Mauseingaben setzen
Object_lpDIDevice_Mouse->SetProperty(DIPROP_BUFFERSIZE, &DIProperties.diph);
// Kontrolle über Maus wird übernommen
Object_lpDIDevice_Mouse->Acquire();
return true;
}
|
_________________ The source of all power is in its destiny... |
|
Nach oben |
|
 |
Hazel JLI MVP


Alter: 40 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 06.08.2003, 15:21 Titel: |
|
|
Ups, hab ich vergessen. :P
Also ich mach's ganz simpel, und zwar habe ich nur einen Grenzwert der nicht überschritten werden darf und einen Multiplikator:
Code: |
if(myAbs(MouseDX) < threshold)
MouseDX = MouseDX * multiplier;
MouseX += MouseDX;
|
Da der Held in meinem Spiel mit einer Kanone rumrennt kann man auf diese Weise die Schwere der Waffe simulieren. _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
 |
X-FILE Super JLI'ler
Anmeldedatum: 12.07.2003 Beiträge: 349
Medaillen: Keine
|
Verfasst am: 06.08.2003, 15:31 Titel: |
|
|
Millenium,
du hast mich falsch verstanden. Ich hab hier auch nen 3200er rumstehen, trotzdem war es so, als ob die Maus ueberhaupt nich den Bewegungen nachkommen wuerde, die ich mache. Das meinte ich.
Der Fehler war das ich GetDeviceData anstatt GetDeviceState genommen hatte. Seit dem habe ich mit selber arbeitsweise wie deiner Routine keine Probleme mehr. |
|
Nach oben |
|
 |
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 06.08.2003, 16:07 Titel: |
|
|
Verbesserung meiner Erklräung, wenn ich z.B. ganz schnell nach links oben mit der Maus gehe, dann bewegt sich die Maus erst den großen Sprung auf der y-Achse hoch und dann erst auf der x-Achse nach links. Also er macht nicht beides in einem Schritt sondern nimmt die Achsen irgendwie getrennt...
Ja ich machs mit der GetDeviceData...aber wie macht man das mit der anderen Funktion in der MSDN darf ich da von Siete zu Seite springen wo immer andere Stukturen beschrieben werden, die man dafür braucht!  _________________ The source of all power is in its destiny... |
|
Nach oben |
|
 |
X-FILE Super JLI'ler
Anmeldedatum: 12.07.2003 Beiträge: 349
Medaillen: Keine
|
Verfasst am: 06.08.2003, 17:57 Titel: |
|
|
Hmm benutzt du die DX9 SDK-Hilfe nicht? Nur so als Frage - aber egal. Dummes gefrage hilft dir auch ned
Du musst ne State Structure initialisieren, wie immer (in meinem Fall fuer 4 Buttons - DIMOUSESTATE xxx)
Und dann statt GetDeviceData, GetDeviceState initialisieren.
xxx_My_Device->GetDeviceState(sizeof(xxx), &xxx));
Und dann noch die Koordinaten (siehe Hazel in etwa) hochzaehlen:
MyMouse.x += xxx.lX; //Wie in DIMOUSESTATE-Structure definiert
MyMouse.y += xxx.lY;
So weit hab ichs. Außerdem setzte ich keine breaks beim setzen der Koordinaten, d.h. es werden immer alle Achsen gesetzt auf einmal. |
|
Nach oben |
|
 |
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 06.08.2003, 18:15 Titel: |
|
|
@X-FILE: BIG THX!
Hat super funktioniert!
Ja ich hab auf einmal ein Problem mit der Microsoft Platform SDK, (3Cds die ich mir runtergeladen habe) aber aufeinmal hat der manche Funktionen nicht mehr drinnen und dann muss ich wieder in der Internet SDK suchen und das ist nicht so komfortabel...  _________________ The source of all power is in its destiny... |
|
Nach oben |
|
 |
X-FILE Super JLI'ler
Anmeldedatum: 12.07.2003 Beiträge: 349
Medaillen: Keine
|
Verfasst am: 06.08.2003, 19:11 Titel: |
|
|
Freut mich dass ich helfen konnte. Langsam kann auch ich mal was sagen, da ich auch schon soooo viele Probleme durchgemacht hab
Also ich hab die SDK-Hilfe vom normalen DX9 SDK. Die 3CDs sind die besser?? Klaere mich auf. Sonst nutze ich die VC++ MSDN (die 3 CDs) |
|
Nach oben |
|
 |
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 07.08.2003, 10:11 Titel: |
|
|
Ich habe mir die 3CDs aus dem News Bereich hier runtergeladen... _________________ The source of all power is in its destiny... |
|
Nach oben |
|
 |
|