Bild in Richtung eines anderen drehen!
Übersicht

ke^kxBetreff: Bild in Richtung eines anderen drehen! |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich benutze ein Bild, dass man in 8 Richtungen drehen kann und habe schon dinge wie vorwärtsfahren usw dabei. Mein Problem ist aber, dass ich für die Gegner eine Funktion benötige mir der ich das Bild in Richtung des Spielers drehen kann.
Was mir fehlt ist eigentlich der Ansatz, denn auf den bin ich auch nach tagelangen festhängen nicht gekommen. Am besten wäre eigentlich eine Formel (ich denke mal, dass die mit Cos und Sin ist, hab aber davon keine Ahnung^^) mit der man dann auch 360 Wege einbauen kann. Danke schonmal für eure Hilfe, 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 |
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Const speed=2
Edit: Bug ausgebessert. Ich musste das auch eben erst durch probieren rausfinden, aber jetzt klappts Graphics 640,480,16,1 SetBuffer BackBuffer() While Not KeyHit(1) Cls Color 255,0,0 Oval 315,235,10,10,0 Color 0,255,0 Oval MouseX(),MouseY(),10,10,0 w#=ATan2(320-MouseX(),240-MouseY())+180 Text 100,100,"Winkel: "+w# If KeyDown(57) ; Bewegen MoveMouse MouseX()-Sin(w#)*speed,MouseY()-Cos(w#)*speed EndIf Flip Wend End ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
eXceptION |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] winkel# = ATan2(y2 - y1, x2 - x1)
bildframe% = winkel# * anzahlframes% / 360 |
||
Norweger...
Spreche aber verdammt gut 8086 |
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
eXceptION hat Folgendes geschrieben: Code: [AUSKLAPPEN] Das wird Probleme geben da winkel# hier einen Wert zwischen -180.0 und 180.0 übergeben wird winkel# = ATan2(y2 - y1, x2 - x1)
bildframe% = winkel# * anzahlframes% / 360 ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
eXceptION |
![]() Antworten mit Zitat ![]() |
---|---|---|
wie auch immer... ![]() Code: [AUSKLAPPEN] winkel# = ATan2(y2 - y1, x2 - x1) + 180
|
||
Norweger...
Spreche aber verdammt gut 8086 |
![]() |
DA |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich will ja eigentlich nicht stören, aber ich hätte da noch eine kleine frage zu Hubsis code.
Hubsi hat Folgendes geschrieben: Wieso die 180° am ende? Thx DarkAngel |
||
Deutscher Blitz Basic Chat |
hot-bitGast |
![]() Antworten mit Zitat |
|
---|---|---|
Hoi..
Warum probierst du nicht einfach mal aus, was passiert, wenn du die 180 weglässt. Oder wenn du andere Werte dafür einsetzt ? DADURCH könnte dir vielleicht der Knopf aufgehen ![]() War nicht böse gemeint. Aber durchs Probieren lernt man sehr viel ... Toni |
||
![]() |
DA |
![]() Antworten mit Zitat ![]() |
---|---|---|
Edit: Habe shit geschrieben, wollte eigentlich was ganz anderes schreiben.
Also, ich habe die 180° verändert, und habe auch schon sofort den unterschied bemerkt. Aber warum die 180°? Ich sehe den unterschied nur im Kopf verstehe ich es nicht! So, endlich mein Gott war das schwierig ![]() Thx DarkAngel |
||
Deutscher Blitz Basic Chat |
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
https://www.blitzforum.de/viewtopic.php?t=6509 MfG D2006 PS: 2 Leute sollten sich jetzt angesprochen fühlen ... |
||
![]() |
eXceptION |
![]() Antworten mit Zitat ![]() |
---|---|---|
ein zirkel geht vom -PI zu PI in radianen...
in graden wird das DIREKT übersetzt, -180 zu 180... wenn wir +180 machen, wird es 0 zu 360... |
||
Norweger...
Spreche aber verdammt gut 8086 |
ke^kx |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke @ll, dass ihr mir so schnell geholfen habt.
@D2006: Beziehst du dich auf die Lösungsvorschläge oder auf die Noops? 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 |
ke^kx |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ach, shit. Ich bin doch zu blöd um es hinzubekommen (bitte mich nicht als Noop abtuen, nur weil ich die Winkelfunktionen noch nicht in Mathe hatte).
Ich versuch es bis jetzt so zu regeln: Pseudo: Code: [AUSKLAPPEN] w# = ATan2(x1 - x2, y1 - y2) + 180 If w# = Winkel1 Goto auserhalb ElseIf w# > Winkel1 Drehen_links () ElseIf w# < Winkel1 Drehen_rechts () EndIf .auserhalb Weil schon das mit dem Hindrehen noch nicht funzte hab ich noch das hier eingefügt: Code: [AUSKLAPPEN] Robo(RoboA, 10) = w# Aber auch nachdem ich sehr häufig die Werte verändert hatte funktionierte es nicht. (Ich benutze jetzt doch 360°) Bitte helft mir wieder, 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 |
![]() |
simi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich weiss nicht, wie du das genau meinst, aber vielleicht hilft dir das:
Code: [AUSKLAPPEN] Graphics 640,480,32,2 Global x#,y# SetBuffer BackBuffer() While Not(KeyHit(1)) Oval 200,200,200,200,0 mx=MouseX() my=MouseY() Rect mx,my,10,10 mix=300-mx miy=300-my winkel = ATan2(miy,mix) x= 300- Cos(winkel)*100 y= 300- Sin(winkel)*100 Text 10,10,winkel Oval x,y,10,10,1 Flip Cls Wend End End Sonst, wenn sich der Spieler nicht auf einen Ruck drehen soll, würde ich auch mit sin/cos machen, dass er sich auf einem kleinen Kreis bewegt, und wenn er dann im Richtigen Winkel ist, auf das Objekt zuläuft... cu simi |
||
ke^kx |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ne, das meine ich auch nicht.
Noch mal genauer: Ich habe ein Bild, dass lässt sich in 360 Richtungen drehen. Was ich jetzt möchte ist, dass ich das Bild zu einem anderen drehe: << () << () Die Pfeile stehen für die jetztige Blickrichtung, die Klammern für das Bild in dessen Richtung das andere gedreht werden soll. Also soll es hinterher so aussehen: >> () >> () Wenn es einen speziellen Befehl in 3D dafür gibt könnt ich den auch benutzen. Wenn ihr eine Formel wisst, wäre das noch besser. Vielen Dank im voraus, 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 |
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mit Atan2() den Winkel berechnen, ist dieser größer 180 nach rechts drehen, ist er kleiner entsprechend nach links bis es +/- einer gewissen Toleranz passt. Code siehe oben ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
simi |
![]() Antworten mit Zitat ![]() |
---|---|---|
2. Versuch: Vielleicht so:
Code: [AUSKLAPPEN] Graphics 640,480,32,2 Global x#,y# Image = CreateImage(200,200,360) Color 255,255,255 For z = 0 To 359 SetBuffer ImageBuffer(image,z) x= 100+Cos(z)*100 y= 100+Sin(z)*100 Oval x,y,10,10,1 Next SetBuffer BackBuffer() While Not(KeyHit(1)) Oval 200,200,200,200,0 mx=MouseX() my=MouseY() Rect mx,my,10,10 mix=300-mx miy=300-my winkel = ATan2(miy,mix) DrawImage image,200,200,winkel+179 Flip Cls Wend End wird jetzt durch ein Bild gemacht.... (Weiss, ein bisschen gross ![]() cu simi |
||
ke^kx |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
So hab ich es versucht, aber es hat noch nicht geklappt. Ich probiers noch mal weiter.
Jiriki [Edit] @Simi: Es geht nicht um das Bild , sondern darum, wie ich ein Bild in die gewünschte Richtung drehen kann. |
||
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 |
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
schau mal hier nach da ist ein komplettes beispiel dabei
www.blitzforum.de/viewtopic.php?t=353 |
||
[BB2D | BB3D | BB+]
|
ke^kx |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke, funktioniert, einwandfrei. Endlich kann ich weitermachen^^
Danke an alle, die hier gepostet habe, 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 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group