| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen | 
	
	
		| Autor | Nachricht | 
	
		| RayJunx JLI'ler
 
 
 Alter: 44
 Anmeldedatum: 16.01.2006
 Beiträge: 130
 Wohnort: Bayern
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 16.01.2006, 21:44    Titel: Ganz einfach Directinput Mausauswertung gesucht |   |  
				| 
 |  
				| Hi all   Der Code über Directinput maus verwendung aus dem Buch funktioniert bei mir irgendwie nicht und ich weiß nicht was ich falsch mache. Kann mir jemand vielleicht helfen und mir einfach ganz konkret nur die relevanten Zeilen rauskopieren die ich zur Mausauswertung brauche?
 initierung
 und dann im spiel
 berechnung und variable für die x und y position
 sowie irgend einen bool speicher für die tasten (an/aus) funktionen
 vielleicht auch scrollrad wenn derjenige weiß wies geht.
 ich steh leider voll auf dem schlauch.
 über winapi krieg ichs hin. aber ich kann dann irgendwie im spiel
 nicht mehr drauf zugreifen... checks nicht.
 
 gruß
 RayJunx81
 _________________
 Just a Freak
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| 51m0n JLI'ler
 
  
 Alter: 33
 Anmeldedatum: 06.01.2006
 Beiträge: 167
 Wohnort: Erkelenz
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 17.01.2006, 12:36    Titel: |   |  
				| 
 |  
				| Hallo wenn du die koordinaten der Maus erfahren willst kannst du auch folgendes machen:
 
  	  | Code: |  	  | POINT pt; GetCursorPos(&pt);
 | 
 Ich denke der Code dürfte klar sein.
 Und zum klicken...
 ich weiß im Moment nich ganz genau wie aber du kannst mit
 if(maus.dwOfs == DIMOFS_BUTTON0) überprüfen ob die taste gedrückt wurde.
 
 Mit dem Scrollrad hab ich keine Ahnung.
 
 Hoffe ich konnte helfen
  _________________
 Teigwaren
 heißen Teigwaren,
 weil sie früher einmal Teig waren
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| Jonathan_Klein Living Legend
 
  
 Alter: 38
 Anmeldedatum: 17.02.2003
 Beiträge: 3433
 Wohnort: Siegerland
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 17.01.2006, 13:11    Titel: |   |  
				| 
 |  
				|  	  | CPP: |  	  | LPDIRECTINPUTDEVICE8 m_lpDIMouse; 
 //Die Maus initialiesieren
 m_lpDI->CreateDevice(GUID_SysMouse, &m_lpDIMouse, NULL);
 m_lpDIMouse->SetDataFormat(&c_dfDIMouse);
 m_lpDIMouse->SetCooperativeLevel(hWnd, DISCL_FOREGROUND | DISCL_EXCLUSIVE);
 m_lpDIMouse->Acquire();
 
 | 
 
 
  	  | CPP: |  	  | //Die Maus aktualiesieren if(FAILED(m_lpDIMouse->GetDeviceState(sizeof(m_Mousestate), &m_Mousestate)))
 {
 m_lpDIMouse->Acquire();
 m_lpDIMouse->GetDeviceState(sizeof(m_Mousestate), &m_Mousestate);
 }
 m_CursorXPos+=m_Mousestate.lX*m_CursorSpeed;
 m_CursorYPos+=m_Mousestate.lY*m_CursorSpeed;
 m_CursorZPos+=m_Mousestate.lZ/m_Mausradabstand;
 
 | 
 
 Falls du Fragen zu den Parametern hast, gib die entsprechenden Funktionen bei der DX Doku ein, da findest du alles.
 _________________
 https://jonathank.de/games/
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| RayJunx JLI'ler
 
 
 Alter: 44
 Anmeldedatum: 16.01.2006
 Beiträge: 130
 Wohnort: Bayern
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 17.01.2006, 20:37    Titel: problem mit code |   |  
				| 
 |  
				| habe den Code von dir ( Jonathan_Klein ) eingebunden,
 
 LPDIRECTINPUTDEVICE8 m_lpDIMouse;
 
 ging
 
 nach dem einfügen von:
 
 m_lpDI->CreateDevice(GUID_SysMouse, &m_lpDIMouse, NULL);
 m_lpDIMouse->SetDataFormat(&c_dfDIMouse);
 m_lpDIMouse->SetCooperativeLevel(hWnd, DISCL_FOREGROUND | DISCL_EXCLUSIVE);
 m_lpDIMouse->Acquire();
 
 bekam ein eine fehlermeldng:
 error C2065: 'm_lpDI' : undeclared identifier
 
 also habe ich rumgespielt und  mit
 lpDI->CreateDevice(GUID_SysMouse, &m_lpDIMouse, NULL);
 gehts wenn man das "m_" wegläßt. dachte war vielleicht
 ein tipfehler...
 
 dann habe ich irgendwo verucht die maus zu aktualisieren wie
 in deinem text mit der anfangszeile:
 if(FAILED(m_lpDIMouse->GetDeviceState(sizeof(m_Mousestate), &m_Mousestate)))
 da meckert er mich aber sofort an das:
 error C2065: 'm_Mousestate' : undeclared identifier
 
 kannst du mir helfen? was mache ich falsch?
 <dinput.h>  und dinput8.lib habe ich eingebunden
 
 muß ich eigentlich irgendwelche variablen selbst
 anlegen? oder sind die alle bereits eingebettet.
 sieht so aus...
 
 gruß
 und danke für eure hilfe!
 
 RayJunx
 _________________
 Just a Freak
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| Jonathan_Klein Living Legend
 
  
 Alter: 38
 Anmeldedatum: 17.02.2003
 Beiträge: 3433
 Wohnort: Siegerland
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 18.01.2006, 13:51    Titel: |   |  
				| 
 |  
				| Also, der Code den ich gepostet habe ist aus meiner fertigen DInput Klasse. Daher kannste den net so einfach übernehmen, er sollte eigentlich nur zeigen,w ie es im Prinzip geht. Meiner Meinung nach bringt es wenig sich von anderen alles zusammenbasteln zu lassen, man versteht es dann nicht so gut, wie wenn man es selber macht. Darum hab ich nur diesen Teil gepostet.
 Du musst tatsächlich alle Variablen selber anlegen, bzw. evtl. haste das ja schon (weil es ja ging als du m_ entfernt hast).
 In der DX Dokumentation, die normalerweise bei de Installation des DX SDK's mitinstalleirt wird, findest du eine Detailierte dokumentation aller DX Funktionen.
 Bei GetDeviceState steht zum Beispeil das man einen Zeiger auf eine Struktur übegeben muss,  je nach Gerät gibt es verscheidnee für eine Maus benutz man halt:
 
  	  | CPP: |  	  | typedef struct DIMOUSESTATE { LONG lX;
 LONG lY;
 LONG lZ;
 BYTE rgbButtons[4];
 } DIMOUSESTATE, *LPDIMOUSESTATE;
 
 | 
 
  	  | Zitat: |  	  | lX
 X-axis.
 lY
 Y-axis.
 lZ
 Z-axis, typically a wheel. If the mouse does not have a z-axis, the value is 0.
 rgbButtons
 Array of buttons. The high-order bit of the byte is set if the corresponding button is down.
 
 | 
 
 Der Rest steht da auch irgendwo, es ist immer sehr nützlich wenn man bisschen mit der DX Doku umgehen kann.
 _________________
 https://jonathank.de/games/
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| RayJunx JLI'ler
 
 
 Alter: 44
 Anmeldedatum: 16.01.2006
 Beiträge: 130
 Wohnort: Bayern
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 18.01.2006, 16:50    Titel: hab... |   |  
				| 
 |  
				| hab mal eben versucht da über die hilfe schlau zu werden ja da gibts VIEL leider zu viel. das beispiel zur maus ist ein code mit
 über 1000zeilen. hallo?
 programmiere erst seit ein paar tagen, das krieg ich noch nicht gebacken.
 leider. auserdem hab ich nicht vor da feinheiten zu machen. ich will
 nur nen schlichten code zum portieren. wie der mauszeiger dann konkret
 arbeitet interessiert mich im spiel dann nicht mehr die bone.
 hauptsache coordinaten und tasten abfragbar. thats all.
 *frustriert ist*
  _________________
 Just a Freak
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| DirectXer Dark JLI'ler
 
  
 
 Anmeldedatum: 05.02.2005
 Beiträge: 1201
 Wohnort: Köln
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 18.01.2006, 16:56    Titel: Re: hab... |   |  
				| 
 |  
				|  	  | RayJunx hat Folgendes geschrieben: |  	  | hab mal eben versucht da über die hilfe schlau zu werden ja da gibts VIEL leider zu viel. das beispiel zur maus ist ein code mit
 über 1000zeilen. hallo?
 programmiere erst seit ein paar tagen, das krieg ich noch nicht gebacken.
 leider.
 | 
 meinst du nicht, dass es dann sinnvoll wäre, erstmal mit C++ und WinAPI im Allgemeinen anzufangen? Erst ein paar Tage programmieren, und dann schon DirectX ausfahren O.o
 
 Gruß DirectXer
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| Patrick Dark JLI Master
 
  
 
 Anmeldedatum: 25.10.2004
 Beiträge: 1895
 Wohnort: Düren
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 18.01.2006, 18:29    Titel: |   |  
				| 
 |  
				| Guter Rat: Lass DirectX erstmal links liegen und lerne C++ und Win32API erstmal anständig. DANN erst mit ZusatzAPIs anfangen. 
 Für DirectInput, DirectDraw und co. gibt es auf www.germangamedev.de mehr als genug.
 
 p.s.: DirectInput sucks
 _________________
 'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
 [ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| Jonathan_Klein Living Legend
 
  
 Alter: 38
 Anmeldedatum: 17.02.2003
 Beiträge: 3433
 Wohnort: Siegerland
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 18.01.2006, 18:30    Titel: |   |  
				| 
 |  
				| ich hab das erste halbe Jahr nur Konsolenprogramme gemacht, unter anderen viele Textadventures und Quiz und sogar n rundenbasiertes Prügelspiel   
 Du brauchst dir nicht rießige Beipsiele anschauen, wenn man einfach guckt, was zu den funktionen steht, reicht das auch schon aus (meistens). Einfach auf suchen klicken und dann "nur titel" markieren da findet man meistens kompakt alle Informationen samt weiterführenden links zu den Funktionen. Zum Beispiel steht da auch, das du nicht zwingend eine Variable der Struktur anlegen musst da es schon globale gibt. Ob man die benutzt ist einem selber überlassen.
 Auch wenns dir am Ende egal ist, wie alles funktioniert, nützlich ist es doch mit der Doku umgehen zu können, da man dort die Antwort meist schneller findet, als wie wenn man auf die Antwort anderer warten muss.
 _________________
 https://jonathank.de/games/
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| Jones Senior JLI'ler
 
  
 Alter: 34
 Anmeldedatum: 03.03.2005
 Beiträge: 208
 Wohnort: Köln
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 18.01.2006, 19:12    Titel: |   |  
				| 
 |  
				| Ich hab auch wie Jonathan_Klein am anfang viele konsolemprogramme gemacht, es ist erstmal leicht, man bekommt mehr Erfahrung in C++ und mit http://ic.sidewindershome.net machts gleich noch mehr spaß  |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| RayJunx JLI'ler
 
 
 Alter: 44
 Anmeldedatum: 16.01.2006
 Beiträge: 130
 Wohnort: Bayern
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 18.01.2006, 20:08    Titel: geht endlich |   |  
				| 
 |  
				| wollte ja als erstes eh die winapi maus verwenden. und jetzt weiß ich auch warum es nicht ging,
 beide beispiele waren aus dem buch haben aber eine andere bezeichnung verwendet, die jetzt gleichgestellt, wunderbar funktionieren und ich krieg ganz einfach meine koordinaten. wunderprächtig.
 _________________
 Just a Freak
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		|  |