Auf Mausklick Bild bewegen?
Übersicht

bruce85Betreff: Auf Mausklick Bild bewegen? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hallo,
ich bin grad dabei ein Spiel zu schreiben, und wenn ich auf das Bild klicke möchte ich es verschieben können, habe das zwar richtig gemacht, aber wenn ich auf das Bild klicke, dann hängt das bild immer am Spietze der maus, ich verschiebt sich weiter runter wenn ich drauf klicke, wie kann ich es verhindern? hier mal mein Code: Code: [AUSKLAPPEN] DrawImage ball,x,y
If ImagesCollide(maus,MouseX(),MouseY(),0,ball,x,y,0) Then If MouseDown(1) Then x = MouseX() y = MouseY() EndIf EndIf ich danke euch schonmal ![]() Gruss Andreas |
||
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
hinter das Imagescollide muss noch ein AND mousedown(1) sonst wird es ja immer mit gezogen wenn es kollidiert und das ist immer der fall, da es immer mitgezogen wird, verstehst du? ![]() MfG |
||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
bruce85 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich danke dir, aber das geht auch so, wenn ich die linke maustaste gedrückt halte, dann kann ich es verschieben, wenn ich los lase, dann kann ich es nich mehr verschicben.
aber wenn ich ganz unten auf das Bild klicke, dann hängt sich das bild weiter unten an, das möchte ich verhindern ![]() |
||
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
oh hast du ja auch drin ![]() |
||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
bruce85 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
danke dir ![]() Code: [AUSKLAPPEN] Function level_start()
Repeat ClsColor 128,255,0 Cls ;level anzeigen DrawImage levels,level_y,level_y,level_frames DrawImage ball,x,y If ImagesCollide(maus,MouseX(),MouseY(),0,ball,x,y,0) Then If MouseDown(1) Then x = MouseX() y = MouseY() EndIf EndIf DrawImage maus,MouseX(),MouseY() Flip Until KeyHit(1) End Function Das Menu habe ich weg gelasen bin noch net weit mit mein Spiel, nur wenn ich auf dem Ball klicke, hängt sich der Ball in der Mitte des Mauszeigers, wiess nicht warum ![]() |
||
![]() |
JustTheBestBetreff: ... |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bin mir zwar nicht sicher was du mit "hängt sich an die Mitte des Mauszeigers..." meinst, aber ich vermute, du willst, dass der Ball genau rundherum um den Zeiger gemalt wird und nicht die obere linke Ecke des Bildes am Mauszeiger ist!
Lösung: Da es sowieso eine runde figur(ball, oder nicht?) ist, solltest du nach dem Laden des Bildes den Befehl zum verändern des Bezugspunktes setzen: Code: [AUSKLAPPEN] midhandle ball Probiers mal! Sry, wenn ich dich missverstanden habe! mfg JTB |
||
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
mh also ich seh im moment keinen fehler... kannst du mir deinen Fehler nochmal genauer beschreiben? | ||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Function Hauptschleife()
ClsColor 128,255,0 Repeat Cls DrawImage ball,x,y If MouseHit(1) Then If ImagesCollide(maus,MouseX(),MouseY(),0,ball,x,y,0) Then mx = MouseX()-x my = MouseY()-y BildAnMaus= 1 EndIf End If If MouseDown(1) And BildAnMaus = 1Then x = MouseX() -mx y = MouseY() -my Else BildAnMaus= 0 EndIf DrawImage maus,MouseX(),MouseY() Flip Until KeyHit(1) End Function |
||
[BB2D | BB3D | BB+]
|
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
dachte er wollte nur das es sich bewegt wenn man gedrückt hält... | ||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
bruce85 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
cool, ich danke dir, genau das habe ich gemeint ![]() |
||
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was hällst du hiervon:
Code: [AUSKLAPPEN] Function level_start() Repeat ClsColor 128,255,0 Cls ;level anzeigen DrawImage levels,level_y,level_y,level_frames DrawImage ball,x,y If ImagesCollide(maus,MouseX(),MouseY(),0,ball,x,y,0) Then If MouseDown(1) x = MouseX()+mx y = MouseY()+my if klicked=0 then mx=x-MouseX():my=y-MouseY():klicked=1 Else klicked=0 EndIf EndIf DrawImage maus,MouseX(),MouseY() Flip Until KeyHit(1) End Function Besser so? *edit*huch! Hab deinen Post übersehen Rallimen lol*/edit* |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
![]() |
JustTheBestBetreff: Achso... |
![]() Antworten mit Zitat ![]() |
---|---|---|
Könntest du mir bitte nochmal sagen, welche lösung du jezt gemeint/gesucht hast, wäre ich dir dankbar, da ich dann auch dein Problem nachvollziehen kann!
danke! mfg JTB |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hier mal schnell gebastelter Code um das Problem zu zeigen!
Bei schneller Mausbewegung löst sich das bild vom Muaszeiger! Beim Klicken auf das Bild wird es einfach zur Maus verschoben! Code: [AUSKLAPPEN] Graphics 800,600,16,2
SetBuffer BackBuffer () ClsColor 128,255,0 Ball = Image(100,100,$ff0000) Maus = Image(5,5,$ffff00) Repeat Cls DrawImage ball,x,y If ImagesCollide(maus,MouseX(),MouseY(),0,ball,x,y,0) Then If MouseDown(1) Then x = MouseX() y = MouseY() EndIf EndIf DrawImage maus,MouseX(),MouseY() Flip Until KeyHit(1) Image(10,10,$ff0000) Function Image(x,y,f); Erstellt Pseudo grafiken img = CreateImage (x,y) SetBuffer ImageBuffer (img) Color 0,0,f Rect 0,0,x,y,1 SetBuffer BackBuffer () Color 255,255,255 Return img End Function Bei diesem Code ist es richtig! Code: [AUSKLAPPEN] Graphics 800,600,16,2
SetBuffer BackBuffer () ClsColor 128,255,0 Ball = Image(100,100,$ff0000) Maus = Image(5,5,$ffff00) Repeat Cls DrawImage ball,x,y If MouseHit(1) Then If ImagesCollide(maus,MouseX(),MouseY(),0,ball,x,y,0) Then mx = MouseX()-x my = MouseY()-y BildAnMaus= 1 EndIf End If If MouseDown(1) And BildAnMaus = 1Then x = MouseX() -mx y = MouseY() -my Else BildAnMaus= 0 EndIf DrawImage maus,MouseX(),MouseY() Flip Until KeyHit(1) Image(10,10,$ff0000) Function Image(x,y,f); Erstellt Pseudo grafiken img = CreateImage (x,y) SetBuffer ImageBuffer (img) Color 0,0,f Rect 0,0,x,y,1 SetBuffer BackBuffer () Color 255,255,255 Return img End Function |
||
[BB2D | BB3D | BB+]
|
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group