Maus lässt immer los

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
R4z0r1989
Beiträge: 521
Registriert: 12.06.2005 18:06
Kontaktdaten:

Maus lässt immer los

Beitrag von R4z0r1989 »

Code: Alles auswählen


;PB 3.94

InitSprite()
InitMouse()
InitKeyboard()

;- Image Plugins
UsePNGImageDecoder()


If OpenScreen(800,600,32,"IT") = 0  
  Debug 1
  End
EndIf

LoadSprite(400,"GFX/Maus/Maus0.png")
TransparentSpriteColor(400, 255, 0, 255)
LoadSprite(450,"GFX/misc/close.png")
LoadSprite(501,"GFX/HPuMP.png")


hp = 100
mp = 100

HPMP  = 1
HPMPx = 200
HPMPy = 200
HPMPh = SpriteHeight(501)
HPMPw = SpriteWidth(501)

ClBu  = 1

Repeat
  
  ExamineMouse()
  ExamineKeyboard()
  
  mousex = MouseX()
  mousey = MouseY()
  
  FlipBuffers():ClearScreen(255,255,255)
  
  If ClBu = 1
    DisplaySprite(450,580,0)
  EndIf
  
  
  If HPMP = 1
    DisplaySprite(501, HPMPx, HPMPy)
    If StartDrawing(ScreenOutput()) 
      For y = 0 To 3
        Line(HPMPx+6,HPMPy+16+y,hp,0,$0000FF)
      Next y
      For y = 0 To 3
        Line(HPMPx+6,HPMPy+23+y,mp,0,$FF0000)
      Next y
      StopDrawing()
    EndIf
  EndIf
  
  If StartDrawing(ScreenOutput()) 
    Locate(50,200) 
    DrawText("HP : "+Str(hp))
    Locate(50,220) 
    DrawText("MP : "+Str(mp))
    Locate(50,250) 
    DrawText("Mouse(x,y) : "+Str(MouseX)+","+Str(MouseY))
    Locate(50,280) 
    DrawText("Maus drückt : "+Str(MouseButton(1))+"    move : "+Str(move))
    StopDrawing() 
  EndIf
  
  
  mb1 = MouseButton(1)
    
  StartDrawing(ScreenOutput()) 
  If mb1 = 1
    If mousex <= HPMPx+112 And mousex >= HPMPx And mousey <= HPMPy+10 And mousey >= HPMPy And HPMP = 1
      If move = 0  
        mousexmove = mousex - HPMPx
        mouseymove = mousey - HPMPy
        move = 1
      EndIf
    ElseIf mousex <= 600 And mousex >= 580 And mousey <= 20 And mousey >= 0 And ClBu = 1
      End
    Else
      
    EndIf
  EndIf
  StopDrawing()  
  
  If move = 1
    HPMPx = mousex - mousexmove
    HPMPy = mousey - mouseymove
    If HPMPx <= 0
      HPMPx = 0
    EndIf
    If HPMPx >= 800 - HPMPw
      HPMPx = 800 - HPMPw
    EndIf
    If HPMPy <= 0
      HPMPy = 0
    EndIf
    If HPMPy >= 600 - HPMPh
      HPMPy = 600 - HPMPh
    EndIf
  EndIf
  
  If mb1_was = 1 And mb1 = 0
    move = 0
  EndIf
  
  DisplayTransparentSprite(400, mousex, mousey)
  
  
  If KeyboardReleased(#PB_Key_L)
    If HPMP = 1
      HPMP = 0
    Else
      HPMP = 1
    EndIf
  EndIf
  
  SetFrameRate(50)
  
  mb1_was = mb1
  
Until Quit 
Wenn ich die maus zu schnell bewege dann is einfach lässt der MausButton los

Aber wieso
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> Wenn ich die maus zu schnell bewege dann is einfach lässt der MausButton los

[OT] ich wäre dir dankbar, wenn du in zukunft deine sätze ein wenig sorgfältiger formuliertest... [/OT]


also, bei mir lässt er nicht los.
möglicherweise ist es bei dir ein reines Hardwareproblem: wie alt ist deine Maus?
es könnte auch ein physikalisches problem sein.
(du lässt bei dem gewackele ein kleines bisschen los)


was mir beim testen auffällt ist wie träge der close-button ist...
ich schau noch mal den code durch, woran das liegen könnte...

und btw:
es wäre praktisch, wenn du die drei grafiken als testversionen mit beilegst,
das erleichtert uns das testen zu hause.
ich hatte jetzt mal bock und hab fix drei grafix hingedaddelt, aber das war eher ne ausnahme ...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
R4z0r1989
Beiträge: 521
Registriert: 12.06.2005 18:06
Kontaktdaten:

Beitrag von R4z0r1989 »

vielen dank für das testen! aber alt is meine MAus eher nicht! ^^
Hab ne Genius Laser Navigator 535 Gamermaus!
Und ich hab auch schon gedacht dass es daran liegt!
Aber warum? ôo

Naja wenn jemand da ne Lösung findet, fettes THX!

MGF R4z0r
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

also nochmal: es liegt nicht an deinem code, der läßt nicht los.
deine arbeit mit den Flags ist fehlerfrei.
(du hast nur einmal unnötig startdrawing/stopdrawing drin, um die button-abfrage, und SetFrameRate gehört vor die schleife)

entweder wackelst du mit dem finger, oder deine maus stößt an ihre grenzen.

PS:
warum noch 3.94?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag von HeX0R »

Könnte man es nicht mal in die FAQs übernehmen, dass man doch bitte Grafiken beifügen soll ?
Im englischen Forum hab ich mal nen Codeschnippsel gepostet, wie man Grafiken (o.ä.) in DataSections wandeln kann und ts-soft hat glaub auch ein fertiges Tool mal gebastelt.

Gerade wenn man mal eben jemandem helfen will aber kaum Zeit hat, wird man Codeschnippsel, die wegen fehlender Grafiken nicht gleich anlaufen schnell in die Tonne kippen (zumindest mache ich das immer).
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

http://www.purebasic.fr/german/viewtopi ... rebin2data
desweiteren unterstützt jaPBe dies direkt, ist dann auch mit anderer IDE
lauffähig. Ausserdem besteht noch die Möglichkeit eine Grafik aus dem
PureBasic Examples\Data Ordner zu verwenden indem man
#PB_Compiler_Home als Pfad verwendet.

Ich denke da sollte wirklich mal was getan werden, mich k* zu grosse, mit
fixen Pfaden, fehlenden Dateien, usw. Testcodes auch an :wink:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

is auch ganich nötig, da Datas draus zu machen.

simples hochladen auf Imageshack und im Posting mit imagetags anzeigen,
oder zippen und auf http://www.uploaded.to/ oder http://www.upload.sc/
hochladen
ist meiner meinung nach schon völlig ausreichend.

> mit fixen Pfaden
ohja, sowas ist ein sakrileg. :twisted:

PS:
Badboy99 hat geschrieben:Naja wenn jemand da ne Lösung findet, fettes THX!
solange du keine grafiken zum testen anbietest,
bleibe ich möglicherweise der einzige,
der dein proggi nen testlauf machen lässt.
Zuletzt geändert von Kaeru Gaman am 05.02.2007 16:39, insgesamt 1-mal geändert.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Kaeru Gaman hat geschrieben:is auch ganich nötig, da Datas draus zu machen.

simples hochladen auf Imageshack und im Posting mit imagetags anzeigen,
Ich bin zu Faul was downzuloaden, copy paste und gut :mrgreen:
oder den nächsten thread lesen
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

also, ich finde, ein rechtsklick/bild speichern unter sollte schon ok sein.

du kannst nicht verlangen,
dass sich jeder erstmal mit include und datazeilenumwandlung etc. auseinandersetzt,
wenn er mal ne frage im forum hat.

außerdem, ich sehs kommen dass dann leute ein 1024x768 hintergrundbild per
Datazeilen includen, dann will ich dich mal meckern hören.

da ist ein direktlink zum bild dann doch wesentlich effektiver.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Erfordert: Download des Bildes, Speichern des Sources und nach dem Test
alles wieder löschen.
Mit Copy und Paste entfällt das alles :mrgreen:
Datasection erstellen sollte jedem gelingen, ansonsten gibts eben weniger
Tester. Wie Hexor schon sagte, wer Wert darauf legt, das der Code getestet
wird, sollte das so machen, ich bin bestimmt nicht der einzige "faule Sack" :wink:
PS: Verlangen tue ich garnichts :mrgreen:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten