Objekt dreht sich zur Maus

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

 

shark95

Betreff: Objekt dreht sich zur Maus

BeitragSa, März 18, 2006 17:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo!

Ich möchte, dass sich ein Bild immer zur Maus dreht. Damit meine ich , dass sich das Bild immer so dreht, dass es zur Maus zeigt. Das ist ja nicht alzu schwer zu machen, doch was mir noch fehlt ist, ich möchte gerne,dass sich das Bild nicht sofort zur "Mausrichtung" dreht sondern mit einer bestimmten Geschwindigkeit.

Hoffe mir kann jemand helfen

GRuß
 

Daniel Knobe

BeitragSa, März 18, 2006 17:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Musste mit Vektoren machen denke ich.
Schau dir das mal an, wie das jetzt geht weis ich auch nicht, lang net mehr gemacht. Confused
 

ke^kx

BeitragSa, März 18, 2006 18:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Das könnte dir helfen. Ist zwar in B2D aber das Prinzip ist ja dasselbe.

https://www.blitzforum.de/view...ght=drehen

Jiriki
http://i3u8.blogspot.com
Asus Striker II
Intel Core2Quad Q9300 @ 2,5 GHz (aber nur zwei Kerne aktiv aufgrund der Instabilität -.-)
Geforce 9800 GTX
2GB RAM
 

shark95

BeitragSo, März 19, 2006 18:10
Antworten mit Zitat
Benutzer-Profile anzeigen
danke für die antworten. Das mit der MAusverfolgung hab ich schon doch mir fehlt noch das mit der Geschwindigkeit
 

ke^kx

BeitragSo, März 19, 2006 19:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Zeig mal den Code oder die wichtigen Ausschnitte, denn je nachdem wie du das gelöst hast muss man das anders einbauen Smile

Jiriki
http://i3u8.blogspot.com
Asus Striker II
Intel Core2Quad Q9300 @ 2,5 GHz (aber nur zwei Kerne aktiv aufgrund der Instabilität -.-)
Geforce 9800 GTX
2GB RAM
 

shark95

BeitragSo, März 19, 2006 22:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Code:

xdiff = MouseX()-xObjekt
ydiff = MouseY()-yObjekt
angle = ATan2(ydiff, xdiff)


so hab ichs zurzeit
 

klepto2

BeitragMo, März 20, 2006 1:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Code:

Function GetAngle:Int(X1:Int,Y1:Int,X2:Int,Y2:Int)
   Local xdiff:Int = x1-x2
   Local ydiff:Int = y1-y2
   Return ATan2(ydiff, xdiff)-90
End Function


SetMaskColor 255,0,255
Local Test:TImage = LoadImage("boing.png",MaskedImage)

MidHandleImage(Test)

Local Objx:Int = 400
Local Objy:Int = 300

Local Rotation:Float = 0
Local Speed:Float = .5

Graphics 800,600,0,60


While Not KeyHit(Key_Escape) Or AppTerminate()

SetRotation Rotation

SetBlend MaskBlend
DrawImage Test,objx,objy

Local Angle:Int = GetAngle(objx,objy,MouseX(),MouseY())

If Angle > Int(Rotation) Then Rotation:+Speed
If Angle < Int(Rotation) Then Rotation:-Speed

Flip
Cls
Wend


Einfach ein beliebiges Bild verwenden.
Im Prinzip musst du nur gucken ob der aktuelle Rotationswinkel größer oder kleiner ist, als der zuerreichende. Und dann halt den Winkel um den Speed erhöhen, so nähert sich der Rotations Winkel langsam an den gewollten an.
Matrix Screensaver
Console Modul für BlitzMax
KLPacker Modul für BlitzMax

HomePage : http://www.brsoftware.de.vu
 

Dreamora

BeitragMo, März 20, 2006 9:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Angle > Int(Rotation) + speed
Angle < Int(Rotation) - speed

bitte.
Sonst wird er rumzuckeln wenn speed zu gross ist, weil er Rotation nie erreichen kann.
(In Spieleprogrammierung NIE mit ganz bestimmten Werten rechnen sondern nur mit Wert + MaximalErlaubteAbweichung)
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

shark95

BeitragMo, März 20, 2006 18:29
Antworten mit Zitat
Benutzer-Profile anzeigen
danke funktioniert super, aber ist nicht genau das was ich haben möchte. Wenn ich nämlich vom "180" Punkt auf "-179" weitergehe dreht er logischerweise die ganze runde in die andere Richtung.

Kann man da noch was machen?
 

ke^kx

BeitragDi, März 21, 2006 16:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit dem von mir geposteten Beispiel geht das. Du musste ein bischen runterscrollen und dir den Code von Rallimen angucken.

Jiriki
http://i3u8.blogspot.com
Asus Striker II
Intel Core2Quad Q9300 @ 2,5 GHz (aber nur zwei Kerne aktiv aufgrund der Instabilität -.-)
Geforce 9800 GTX
2GB RAM
 

shark95

BeitragDi, März 21, 2006 17:08
Antworten mit Zitat
Benutzer-Profile anzeigen
oh tut mir leid - hab ich voll übersehen, dass das genau das ist was ich suche. Jedenfalls hab ichs jetzt

Danke

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group