Seite 1 von 3

Maus lässt immer los

Verfasst: 02.02.2007 02:50
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

Verfasst: 02.02.2007 14:41
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 ...

Verfasst: 05.02.2007 11:49
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

Verfasst: 05.02.2007 15:19
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?

Verfasst: 05.02.2007 15:38
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).

Verfasst: 05.02.2007 15:53
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:

Verfasst: 05.02.2007 16:33
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.

Verfasst: 05.02.2007 16:38
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

Verfasst: 05.02.2007 16:43
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.

Verfasst: 05.02.2007 16:54
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: