Seite 1 von 2

Maus verschwindet bei ExamineMouse()

Verfasst: 05.06.2009 20:07
von Tur0k
Hallo Community!

Wenn ich in meinem Code ExamineMouse() verwende, dann verschwindet die Maus. o.0

Sub: DirectX9
Hier der Code:

Code: Alles auswählen

UseJPEGImageDecoder()
UseTGAImageDecoder()
UsePNGImageDecoder()
UseTIFFImageDecoder()

If InitSprite() = 0 Or InitKeyboard() = 0 Or InitMouse() = 0
  MessageRequester("Error", "Can't open the sprite system", 0)
  End
EndIf

If InitSprite3D() = 0
  MessageRequester("Error", "Sprite3D system can't be initialized correctly", 0)
  End
EndIf

    PlayerX = 0
    PlayerY = 0
    

If OpenWindow(0, 0, 0, 700, 500, "Turoks Engine", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)

  If OpenWindowedScreen(WindowID(0), 0, 0, 700, 500, 0, 0, 0)
 
   
  Else
    MessageRequester("Error", "Can't open windowed screen!", 0)
    End
  EndIf

EndIf
   
Repeat

  Repeat

    Event = WindowEvent()
   
    Select Event
      Case #PB_Event_CloseWindow
        Quit = 1
    EndSelect
   
  Until Event = 0
 
  ExamineKeyboard()
  ExamineMouse()
  Delay(10)
    ; ------------------------------------------------
    If KeyboardPushed(#PB_Key_W)
    PlayerY = PlayerY - 1
    EndIf
    ; ------------------------------------------------
    If KeyboardPushed(#PB_Key_S)
    PlayerY = PlayerY + 1 
    EndIf
    ; ------------------------------------------------
    If KeyboardPushed(#PB_Key_A)
    PlayerX = PlayerX - 1
    EndIf
    ; ------------------------------------------------
    If KeyboardPushed(#PB_Key_D)
    PlayerX = PlayerX + 1
    EndIf
    
    ; ------------------------------------------------
    ClearScreen(RGB(0,0,0))
    ; ------------------------------------------------
    ; Person
    If person$ = ""
    person$ = "player.png"
    EndIf
    If Start3D()
    LoadSprite(0, person$, #PB_Sprite_Texture)
    
    CreateSprite3D(0, 0)
    
    MauX = MouseX() : MauY = MouseY()
     
    b.f = 3.14159265/180 
    al.f = ATan((playery-MauY)/(playerx-MauX))/b
    If MauX-Playerx < 0 : al = al + 180 : EndIf
    If MauX-Playerx = 0 :
    If (MauY-Playery)<0 : al = -90 : EndIf
    If (MauY-Playery)>0 : al = 90 : EndIf
    EndIf
  
    RotateSprite3D(0, al, 1)
    
    DisplaySprite3D(0, PlayerX, PlayerY)
    
    Stop3D()
    EndIf
    
    SetWindowTitle(0, "Spieler Position: " +  " X: " + StrF(PlayerX) +  "      " + " Y: " + StrF(PlayerY)) 
    
    PPosX=PlayerX
    PPosY=PlayerY
    ; ------------------------------------------------
   
  FlipBuffers()

Until  Quit Or KeyboardPushed(#PB_Key_Escape) 
Mfg. Tur0k

Verfasst: 05.06.2009 20:25
von Fluid Byte
Sicherlich verschwindet sie da du dann DirectInput benutzt und nicht mehr die Windows Maus. Für einen Cursor kannst du aber ein Sprite nehmen und mittels MouseX()/MouseY() positionieren.

Verfasst: 05.06.2009 20:36
von Tur0k
Thx
Wäre es aber möglich die normale Windows Maus zu nutzen?

Verfasst: 05.06.2009 20:39
von Fluid Byte
Ja gibt es, mittels API. Ich hab' jetzt aber kein Bock was zu basteln. Es gibt da aber ein Beispiel von netmaestro ausm Englischen Forum. Frag mal Kaeru, der was was ich meine.

Verfasst: 05.06.2009 20:51
von Tur0k
Danke, hab die Lösung gefunden! :D

Code: Alles auswählen

  ShowCursor_(1)
Nun wäre das Problem, das meine Maus nur im Fenster bleibt.

Könnte ich das ändern?

Verfasst: 05.06.2009 20:52
von X360 Andy
Die frage hat mich auch schon länger intressiert...
Da ich lieber sowas habe wie in Flashgames, das nur meine Mauseingaben registriert werden wenn ich im Fenster bin, und mich frei rausbewegen kann ohne an das Fenster gebunden zu sein.

Verfasst: 05.06.2009 20:53
von jojo1541
bei einem Screen im Fenster bleibt die Maus doch sowieso da.

Die Koordinaten kann man dann mit WindowMouseX(#Window) und WindowMouseY(#Window) ganz ohne die mauslib abfragen.

Verfasst: 05.06.2009 21:05
von X360 Andy
Wow auf diese Idee bin ich ja noch gar nicht gekommen :?


Thx

Verfasst: 05.06.2009 21:08
von ts-soft
Meine Maus liegt auf ihrem Pad und will nicht verschwinden :freak:

Verfasst: 05.06.2009 21:09
von Andesdaf
ts-soft hat geschrieben:Meine Maus liegt auf ihrem Pad und will nicht verschwinden :freak:
Meine Maus rutscht auf ihrem Pad umher und will nicht aufhören :mrgreen: