Probleme mit der Maus unter Linux

In dieser Linux-Ecke dürfen nur Themen rund um Linux geschrieben werden.
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
CptGreenwood
Beiträge: 125
Registriert: 12.07.2007 10:40

Probleme mit der Maus unter Linux

Beitrag von CptGreenwood »

Hi,

ich habe PB mit allen verlangten Paketen unter Ubuntu 9.04 installiert und bekomme die Maus einfach nicht zum Laufen. Ich habe es mir diesem Code versucht:

Code: Alles auswählen

InitKeyboard()
InitMouse()
InitSprite()
OpenScreen(800, 600, 16, "GameLoop")

Repeat
  ClearScreen(RGB(0,0,0))
  ExamineMouse()
  StartDrawing(ScreenOutput())
    Ellipse(MouseX(), MouseY(), 5, 5, RGB(255,0,0))
  StopDrawing()
  FlipBuffers()
  ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape)
End
Es wird immer nur auf Position 0,0 etwas gezeichnet (MouseX() = 0 und MouseY() = 0), Mausbewegungen werden völlig ignoriert. :angry:

Für Hilfe währe ich extremst dankbar!

Greetz,
Cpt
Benutzeravatar
Waldixxl
Beiträge: 108
Registriert: 27.12.2005 17:35
Wohnort: Linz, Österreich

Re: Probleme mit der Maus unter Linux

Beitrag von Waldixxl »

Hallo CptGreenwood
Ich Habe deinen Code unter PB 4.20, PB 4.31, PB 4.40 beta 5 getestet

unter PB 4.20 kann ich die Maus (roter gefüllter Kreis) über den Bildschirm ohne Probleme bewegen,
der Screen wird nicht im Fenster sondern im Vollbildmodus dargestellt.

unter PB 4.31 und PB 4.40 geht es mir so wie Dir. :oops:
scheint ein Versionsprobleme zu sein. (hoffen auf Beta 6) /:->
Lesen bei schlechten Lichtverhältnissen ist nicht schlecht für die Augen, sondern trainiert sie sogar.

Linux Ubuntu Mate 18.04
PB 5.71
Intel i5
Benutzeravatar
Vermilion
Beiträge: 1846
Registriert: 08.04.2006 16:00
Computerausstattung: Apple iMac (2010) & HP Notebook
Wohnort: Heidekreis

Re: Probleme mit der Maus unter Linux

Beitrag von Vermilion »

Eine Umgehung des Problemes wäre einfach. Man muss nur direkt über SDL API die Cursorposition ermitteln. Ich weiß nicht aus dem Kopf wie das gerade geht, aber einfach mal in der SDL Dokumentation nachschlagen, oder ich habe hier gerade etwas auf die schnelle herausgesucht.

Durch ein CompilerIf Bedingung lässt sich der Quelltext dann auch wieder vollständig portierbar machen.
Bild

Immer die neueste PureBasic Version. Auf allem Betriebssystemen. Ich bin ein OS-Nomad!
Benutzeravatar
CptGreenwood
Beiträge: 125
Registriert: 12.07.2007 10:40

Re: Probleme mit der Maus unter Linux

Beitrag von CptGreenwood »

Das wäre doch mal ein Versuch wert...

Aaaber:
:freak: Ich hab noch nie unter Linux PB programmiert, geschweige denn jemals eine API-Funktion aufgerufen.
Kannst du mir kurz auf die Sprünge helfen:
Es gibt da eine Funktion SDL_GetMouseState_(*x, *y), die mit x und y zwei Zeiger übegeben bekommen, die dann mit den Mauskoordinaten betankt werden. Ich habe aber keinen Schimmer, wie man mit den Zeigern umgeht. Ich habe es mal so versucht:

Code: Alles auswählen

Define mx, my
InitKeyboard()
InitMouse()
InitSprite()
OpenScreen(800, 600, 16, "GameLoop")

Repeat
  ClearScreen(RGB(0,0,0))
  SDL_GetMouseState_(*mx, *my)
  StartDrawing(ScreenOutput())
    Ellipse(mx, my, 5, 5, RGB(255,0,0))
  StopDrawing()
  FlipBuffers()
  ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape)
End
Compiliert und startet zwar, Maus lässt sich aber trotzdem nicht bewegen. >_<
Benutzeravatar
milan1612
Beiträge: 810
Registriert: 15.04.2007 17:58

Re: Probleme mit der Maus unter Linux

Beitrag von milan1612 »

CptGreenwood hat geschrieben:

Code: Alles auswählen

Define mx, my
InitKeyboard()
InitMouse()
InitSprite()
OpenScreen(800, 600, 16, "GameLoop")

Repeat
  ClearScreen(RGB(0,0,0))
  SDL_GetMouseState_(*mx, *my)
  StartDrawing(ScreenOutput())
    Ellipse(mx, my, 5, 5, RGB(255,0,0))
  StopDrawing()
  FlipBuffers()
  ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape)
End
Compiliert und startet zwar, Maus lässt sich aber trotzdem nicht bewegen. >_<
Probiers doch mal mit SDL_GetMouseState_(@mx, @my)...
Bin nur noch sehr selten hier, bitte nur noch per PN kontaktieren
Benutzeravatar
CptGreenwood
Beiträge: 125
Registriert: 12.07.2007 10:40

Re: Probleme mit der Maus unter Linux

Beitrag von CptGreenwood »

War so findig in der PB-Hilfe, dass ich das @ als Adressoperator gefunden habe. Das Programm lautet nun:

Edit: @milan1612: <) Hab meinen Post geschrieben, bevor ich deinen gelsen hatte...

Code: Alles auswählen

Define mx, my
InitKeyboard()
InitMouse()
InitSprite()
OpenScreen(800, 600, 16, "GameLoop")

Repeat
  ClearScreen(RGB(0,0,0))
  SDL_GetMouseState_(@mx, @my)
  StartDrawing(ScreenOutput())
    Ellipse(mx, my, 5, 5, RGB(255,0,0))
  StopDrawing()
  FlipBuffers()
  ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape)
End
Der Unterschied: Der Punkt wird nun nicht mehr auf 0/0 gezeichnet, sondern in der Mitte des Screens, bewegen lässt er sich aber immer nocht nicht. :angry:
Zuletzt geändert von CptGreenwood am 13.10.2009 16:41, insgesamt 1-mal geändert.
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: Probleme mit der Maus unter Linux

Beitrag von DarkDragon »

Probier mal ReleaseMouse(0 oder 1) nach dem OpenScreen aus ob das was ändert.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
Waldixxl
Beiträge: 108
Registriert: 27.12.2005 17:35
Wohnort: Linz, Österreich

Re: Probleme mit der Maus unter Linux

Beitrag von Waldixxl »

Bin neugierig wie es weiter geht ....

habe im Forum etwas gefunden was hier vielleicht weiter helfen kann

Walter
Lesen bei schlechten Lichtverhältnissen ist nicht schlecht für die Augen, sondern trainiert sie sogar.

Linux Ubuntu Mate 18.04
PB 5.71
Intel i5
Benutzeravatar
CptGreenwood
Beiträge: 125
Registriert: 12.07.2007 10:40

Re: Probleme mit der Maus unter Linux

Beitrag von CptGreenwood »

@DarkDragon: ReleaseMouse funzt leider weder mit 0 noch mit 1 :cry:
Benutzeravatar
CptGreenwood
Beiträge: 125
Registriert: 12.07.2007 10:40

Re: Probleme mit der Maus unter Linux

Beitrag von CptGreenwood »

@Waldixxl:

Seufz, auch keinerlei Mausbewegung!

Code: Alles auswählen

Macro Init_SDL_Maus()
  SDL_Init_(#SDL_INIT_VIDEO)
EndMacro

Macro Examine_Sdl_Maus()
  SDL_PollEvent_(@Event.SDL_Event)
EndMacro

Macro MausdlX()
   Event\motion\x
EndMacro

Macro MausdlY()
  Event\motion\y
EndMacro

InitKeyboard()
InitSprite()
init_sdl_Maus()
OpenScreen(800, 600, 16, "GameLoop")

Repeat
  ClearScreen(RGB(0,0,0))
  Examine_Sdl_Maus()
  StartDrawing(ScreenOutput())
    Ellipse(MausdlX(), MausdlY(), 5, 5, RGB(255,0,0))
  StopDrawing()
  FlipBuffers()
  ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape)
End
Antworten