JoyX(), JoyY() und andere grausigkeiten beim Gamepad
Übersicht BlitzBasic
 BlitzBasic  Beginners-Corner
 Beginners-Corner|   | The_NiciBetreff: JoyX(), JoyY() und andere grausigkeiten beim Gamepad |  Sa, Mai 24, 2008 12:05 Antworten mit Zitat   | 
|---|---|---|
| Hi Jungs, nun, folgendes Problem: Mein Gamepad gibt bei JoyX() und JoyY() wenn ich es nicht berühre -1.52588e-005 zurück, und nicht 0. Was daran nicht gut ist? Nun, mein Player dreht sich immer wieder auf diese Position wenn ich das Gamepad berühr. Das ist nicht so toll. :/ Weiss jemand wie ich das verhindern kann? MfG | ||
|   | BigMaexle |  Sa, Mai 24, 2008 12:12 Antworten mit Zitat   | 
|---|---|---|
| Bei vielen Spielen gibt es eine "Todeszone" Also ein Bereich, in dem die Bewegung des Joysticks nicht beachtet wird. Ignoriere doch den Bereich von -0.1 bis 0.1 Ich glaube nämlich es liegt am Joystick, nicht an BB | ||
| -------------------------------------- Ich bin unfreiwillig ein Mitglied dieser kapitalistischen Gesellschaft, wo jeder Geldgeile Unternehmer an mein Geld will und ich selbst bei meinen Entscheidungen so gut wie willenlos bin...... und ich bin glücklich drüber | ||
| Tritium |  Sa, Mai 24, 2008 12:20 Antworten mit Zitat   | |
|---|---|---|
| Sonst könnte der Joystick auch falsch kalibriert sein, wenn Du ihn schon lange nicht mehr benutzt hast. | ||
|   | The_Nici |  Sa, Mai 24, 2008 12:21 Antworten mit Zitat   | 
|---|---|---|
| Danke vielmals, jedoch bleibt er jetzt alle 10° ein bisschen stecken, und stehen bleibt er auch nicht immer, sondern rutscht auf die nächsten 90°. Trotzdem danke vielmals.   MfG | ||
| JKinG |  Di, Mai 27, 2008 13:19 Antworten mit Zitat   | |
|---|---|---|
| Im folgenden Beispiel den Wert von "deadzone" soweit erhöhen bis dein Joystick sich nicht mehr von alleine bewegt. Code: [AUSKLAPPEN] SuperStrict SetGraphicsDriver D3D7Max2DDriver() AppTitle ="Analog Joystick Demo" Graphics 640 , 480 , 0 , 60 Global joymenge:Int = JoyCount() Global gameport:Int = 0 Global gamefps:TTimer = CreateTimer(60) Global deadzone:Double = 0.07 Global movespeed:Double = 6.7 Global x:Double, y:Double While Not KeyHit(key_escape) And Not AppTerminate() Cls If JoyX(gameport) > deadzone Then x=(x+JoyX(gameport)*movespeed) If JoyX(gameport) < -deadzone Then x=(x-Abs(JoyX(gameport)*movespeed)) If JoyY(gameport) > deadzone Then y=(y+JoyY(gameport)*movespeed) If JoyY(gameport) < -deadzone Then y=(y-Abs(JoyY(gameport)*movespeed)) SetColor 200,0,0; DrawRect x, y, 32, 32 WaitTimer(gamefps) Flip -1 Wend Cls EndGraphics() End Mit einem kleinen Toool kannst du alle vorhandenen Joystick Kalibrationen in deinem Betriebssystem löschen, kann hilfreich sein, mal wieder alles auf 0 zu bringen. http://www.bildungsfront.de/public/ClrCalib.zip Ihh, nun erst gesehen das es hier nicht um BlitzMax geht. Bitte lösch mich! | ||
|   | Silver_Knee |  Di, Mai 27, 2008 16:20 Antworten mit Zitat   | 
|---|---|---|
| newcode=Convert (JKinG,"BMax","BB")   Code: [AUSKLAPPEN] AppTitle ="Analog Joystick Demo"
 Graphics 640 , 480 , 0 , 2 joymenge = JoyCount() gamefps = CreateTimer(60) deadzone# = 0.07 movespeed#= 6.7 While Not KeyHit(1) Cls If JoyX(gameport) > deadzone Then x=(x+JoyX(gameport)*movespeed) If JoyX(gameport) < -deadzone Then x=(x-Abs(JoyX(gameport)*movespeed)) If JoyY(gameport) > deadzone Then y=(y+JoyY(gameport)*movespeed) If JoyY(gameport) < -deadzone Then y=(y-Abs(JoyY(gameport)*movespeed)) Color 200,0,0 Rect x, y, 32, 32 WaitTimer(gamefps) Flip 0 Wend Cls End | ||
Übersicht
 BlitzBasic
 BlitzBasic  Beginners-Corner
 Beginners-Corner
					Powered by phpBB © 2001 - 2006, phpBB Group
				



