Maus über Bild?

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

Blitzcraft

Betreff: Maus über Bild?

BeitragSo, Jan 29, 2012 13:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie kann ich überprüfen ob die Maus auf ein Bild zeigt?
Es sollte pixelgenau sein!

Ich habs mit ImagesCollide2 versucht, funzt aber nicht: Sad
Code: [AUSKLAPPEN]
If ImagesCollide2(IMG_KPT,x,y,frame,rot,1,1,IMG_MOUSE,MouseX(),MouseY(),0,0,1,1)
   End
End If


EDIT:
IMG_MOUSE ist ein 1 Pixelgroßes Bild
Screenshot aus meinem ersten Projekt

Xeres

Moderator

BeitragSo, Jan 29, 2012 14:06
Antworten mit Zitat
Benutzer-Profile anzeigen
"funzt aber nicht"
Schade. Willst du das zufällig etwas erläutern?
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Blitzcraft

BeitragSo, Jan 29, 2012 14:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Es passiert einfach nichts!
Kein beenden, kein garnichts Surprised
Screenshot aus meinem ersten Projekt

coolo

BeitragSo, Jan 29, 2012 14:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Schau mal in Zeile 902, da hast du eine Fallunterscheidung die nie wahr ist...


... mal im Ernst: Wie sollen wir dir helfen, wenn wir nicht ausreichend Code haben.
http://programming-with-design.at/ <-- Der Preis ist heiß!
That's no bug, that's my project!
"Eigenzitate sind nur was für Deppen" -Eigenzitat

Xeres

Moderator

BeitragSo, Jan 29, 2012 14:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Stimmen Frame und Rotation? Ist der Mauspixel Alphawert sicher >0.5?
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Blitzcraft

BeitragSo, Jan 29, 2012 14:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier, wenn das weiterhilft: Laughing
Code: [AUSKLAPPEN]
Local IMG_KPT:TImage=LoadAnimImage("data/teile.png",200,200,0,9) 'Körperteile
Local IMG_MOUSE:TImage=CreatePointer:TImage()
...
Local move:Int[,,]=CreateMove()
Local AKT_FRAME:Int
While Not AppTerminate() Or Not Confirm("Wollen sie wirklich beenden?") 'Hauptschleife mit Beenden-Frage
   ...
   For Local KPT:Int=0 Until ANZ_KPT
      SetImageHandle IMG_KPT,move[AKT_FRAME,KPT,5],move[AKT_FRAME,KPT,6]
      If ImagesCollide2(IMG_KPT,move[AKT_FRAME,KPT,0],move[AKT_FRAME,KPT,1],move[AKT_FRAME,KPT,3], move[AKT_FRAME,KPT,2],1,1,IMG_MOUSE,MouseX(),MouseY(),0,0,1,1)
         End
      End If
                ...
   Next
   ...
Wend
End

Function CreateMove:Int[,,]()
   Local move:Int[ANZ_MOVES,ANZ_KPT,7]
   'move[frame,Körperteil(KPT)/Gegenstände,x+y+rotation+img_kpt_frame+visible+handleX+handleY]
   
   For Local COUNTER:Int=0 Until ANZ_MOVES
      RestoreData DATA_KPT
      For Local KPT:Int=0 Until ANZ_KPT-6
         ReadData move[COUNTER,KPT,3],move[COUNTER,KPT,5],move[COUNTER,KPT,6]
         move[COUNTER,KPT,4]=1
      Next
   Next

   Return move
End Function

Function CreatePointer:TImage()
   Local img:TImage=CreateImage(1,1)
   Local pxm:TPixmap=LockImage(img)
      WritePixel(pxm,0,0,2139095040)
   UnlockImage(img)
   Return img
End Function
  • Zuletzt bearbeitet von Blitzcraft am So, Jan 29, 2012 14:27, insgesamt einmal bearbeitet

Blitzcraft

BeitragSo, Jan 29, 2012 14:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Ah, danke!
Lag an der Farbe!

Gibt es noch einen besseren Weg sowas zu lösen?
Screenshot aus meinem ersten Projekt

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group