JoyX(), JoyY() und andere grausigkeiten beim Gamepad
Übersicht

![]() |
The_NiciBetreff: JoyX(), JoyY() und andere grausigkeiten beim Gamepad |
![]() 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 |
![]() 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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Sonst könnte der Joystick auch falsch kalibriert sein, wenn Du ihn schon lange nicht mehr benutzt hast. | ||
![]() |
The_Nici |
![]() 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 |
![]() 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 |
![]() 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


Powered by phpBB © 2001 - 2006, phpBB Group