Linie mit Kreis soll maus folgen
Übersicht

FaramiBetreff: Linie mit Kreis soll maus folgen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hiho. Hab hier in dem Forum mal nen Code-Schnipsel gesehen bei dem nen Kreis mit einer Linie die von der Mitte aus nach oben zeigte und sich dann zur Maus drehte. Danach hat sich der Kreis samt Linie in Richtung maus bewegt bis es ankam. Bewegte man die Maus folgte es weiter und drehte sich langsam zur Maus.
Leider konnte ich nach exzessivem "Suchen"-Knopf gebrauch diesen Code Schnipsel nicht mehr wiederfinden und hab ohne vorlage versucht es so gut es ging nachzumachen. Leider hakt es bei mir schon ziemlich am Anfang. Mein momenantiger Code sieht so aus: Code: [AUSKLAPPEN] Graphics 800, 600, 32, 2 SetBuffer BackBuffer() Global Kreis_x = 400, Kreis_y = 300 Global LSX = 410, LSY = 310 Global LEX = 410, LEY = 290 Global radius = 100 While Not KeyHit(1) Delay(15) Cls mx = MouseX() my = MouseY() Abstand_x = mx - (Kreis_x+10) Abstand_y = my - (Kreis_y+10) Text 50, 100, "Abstand X: "+Abstand_x Text 50, 120, "Abstand Y: "+Abstand_y Text 50, 140, "Atan2: "+ATan2(my - Kreis_y+10, mx - Kreis_x+10) Rect MouseX()-10, MouseY()-10, 20, 20, 0 ;Das Ding soll sich zum Viereck bewegen! Oval Kreis_x, Kreis_y, 20, 20, 0 Color 255, 0, 0 Line LSX, LSY, LEX, LEY Color 255, 255, 255 Flip Wend Währe über einen Link zum Code-Schnipsel oder weiterhilfe sehr dankbar. ![]() |
||
![]() |
Spikespine |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
ist zwar wahrscheinlich nicht der codeschnipsel, den du suchst, aber vielleicht hilft dir das hier etwas weiter. Code: [AUSKLAPPEN] ;Mauszeigerverfolgung
;2005 by Spikespine Graphics 800,600,32,2 SeedRnd MilliSecs() HidePointer ;//Bild erstellen, 90 einzelbilder: 4° Abstufung Dim pointer(89) pointer(0) = CreateImage(3,10) SetBuffer ImageBuffer(pointer(0)) Rect 0,0,3,10 For i=1 To 89 pointer(i) = CopyImage(pointer(0)) RotateImage pointer(i),-i*4 Next ;// SetBuffer BackBuffer() ;//Startposition des Verfolgers x# = MouseX() y# = MouseY() ;// Repeat Cls ;//Mausposition mx = MouseX() my = MouseY() ;// ;//Winkel w#, Abstand s#, Geschwindigkeit v# (abhängig von s#) w# = (ATan2(mx-x,my-y)+360) Mod 360 s# = Sqr((mx-x)^2+(my-y)^2) v# = s# / 20 ;// ;//Position Aktualisieren x# = x# - sin(360-w#) * v# y# = y# + cos(360-w#) * v# ;// ;//Abstufung der Darstellung in 4 Grad schritten w2# = Ceil(w#/4) Mod 90 ;// ;//Darstellen DrawImage pointer(w2),x#,y# Rect mx-1,my-1,2,2 Text 0,0,s Flip ;// Until KeyHit(1) End |
||
Athlon 64 3700+ | 1024 MB RAM | GeForce 7900 GT | Blitz2D, Blitz3D, BlitzPlus, BlitzMax |
Farami |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wie du bereits gesagt hast leider nicht das Codeschnipsel was ich meinte.
Soweit ich mich recht erinnere war das nicht mit CreateImage/ImageBuffer/RotateImage sondern wurde direkt gezeichnet. |
||
![]() |
Spikespine |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ist kein Problem, das kann man einfach mit Sin() und Cos() machen.
Code: [AUSKLAPPEN] ;Mauszeigerverfolgung
;2005 by Spikespine Graphics 800,600,32,2 SeedRnd MilliSecs() HidePointer SetBuffer BackBuffer() ;//Startposition des Verfolgers x# = MouseX() y# = MouseY() ;// Repeat Cls ;//Mausposition mx = MouseX() my = MouseY() ;// ;//Winkel w#, Abstand s#, Geschwindigkeit v# (abhängig von s#) w# = (ATan2(mx-x,my-y)+360) Mod 360 s# = Sqr((mx-x)^2+(my-y)^2) v# = s# / 20 ;// ;//Position Aktualisieren x# = x# - sin(360-w#) * v# y# = y# + cos(360-w#) * v# ;// ;//Darstellen Oval x#-10,y#-10,20,20,0 Line x#,y#,x#-sin(360-w#) * 40,y#+cos(360-w#) * 40 Rect mx-1,my-1,2,2 Text 0,0,s Flip ;// Until KeyHit(1) End |
||
Athlon 64 3700+ | 1024 MB RAM | GeForce 7900 GT | Blitz2D, Blitz3D, BlitzPlus, BlitzMax |
![]() |
tyty |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das "Gummiband"?
-> Forumsuche |
||
User posted image
Kaikille suomea puhuville ihmisille: tyty = tyty the technical youngster!!! |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vielleicht möchte Farami ja kein Gummibandeffeckt und ausserdem meinte er ja das er nichts gefunden hatte. Also kopiere ich nochmal hier den Code rein. Vielleicht ist es ja dieser denn er sucht...Code: [AUSKLAPPEN] Graphics 400,400,0,2
SetBuffer BackBuffer() mx%=0 ;Maus-X-Position my%=0 ;Maus-Y-Position xp#=100 ;Gegner-X-Position yp#=100 ;Gegner-Y-Position rw#=90 ;Gegner-Ist-Rotationswinkel rr#=0 ;Gegner-Soll-Rotationswinkel While Not KeyHit(1) mx=MouseX() my=MouseY() rr=ATan2(my-yp,mx-xp) rw=rw+Sgn(Sin(rr-rw))*1 If Sqr((mx-xp)^2+(my-yp)^2)>40 Then xp=xp+Cos(rw)/2 yp=yp+Sin(rw)/2 End If Color 255,0,0 Line xp,yp,xp+Cos(rw)*10,yp+Sin(rw)*10 Color 255,255,255 Rect mx-4,my-4,9,9,0 Oval xp-4,yp-4,9,9,0 Flip Cls Wend End |
||
Farami |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hectic hat Folgendes geschrieben: Vielleicht möchte Farami ja kein Gummibandeffeckt und ausserdem meinte er ja das er nichts gefunden hatte. Also kopiere ich nochmal hier den Code rein. Vielleicht ist es ja dieser denn er sucht...Code: [AUSKLAPPEN]
Graphics 400,400,0,2
SetBuffer BackBuffer() mx%=0 ;Maus-X-Position my%=0 ;Maus-Y-Position xp#=100 ;Gegner-X-Position yp#=100 ;Gegner-Y-Position rw#=90 ;Gegner-Ist-Rotationswinkel rr#=0 ;Gegner-Soll-Rotationswinkel While Not KeyHit(1) mx=MouseX() my=MouseY() rr=ATan2(my-yp,mx-xp) rw=rw+Sgn(Sin(rr-rw))*1 If Sqr((mx-xp)^2+(my-yp)^2)>40 Then xp=xp+Cos(rw)/2 yp=yp+Sin(rw)/2 End If Color 255,0,0 Line xp,yp,xp+Cos(rw)*10,yp+Sin(rw)*10 Color 255,255,255 Rect mx-4,my-4,9,9,0 Oval xp-4,yp-4,9,9,0 Flip Cls Wend End Bingo! Das isses! Vielen vielen Dank! ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group