ATan2 und RotateImage
Übersicht

![]() |
TimBoBetreff: ATan2 und RotateImage |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hy Leute ![]() ich beschäftigemich seit ca. 6 Wochen mit BlitzBasic, somit bin ich noch NOOB, und schreibe seit dem an einem SpaceShooter. Bis jetzt habe ich mich durch Robs Tut und einer Hilfestellung was types angeht ![]() So nun brauch ich wohl ein 2tes mal Hilfe! Ich habe KI's die sich von links nach rechts bewegen und das eigene Flugzeug ansteuern, soweit klapp das auch! Nur mein Problem ist, dass ich nicht weiß wie ich es schaffen kann das Bild zum Raumchiff blicken zu lassen, o. es einfach dahin schauen lassen kann, in welche Richtung die ki auch fliegt. Ich habe von ATan2, sin und cos und RotateImage gehört,nur ich weiß nicht wie ich die Befehle/Formeln einetzten kann. Google und BlitzBase hat da auch nicht weitergeholfen. Könnt ihr mir Helfen? Danke schon ma im Vorraus! |
||
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31 hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht. |
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
führ dir das mal zu gemüte:
Code: [AUSKLAPPEN] AutoMidHandle 1
Dim img(360) img(0) = CreateImage(50,25) SetBuffer ImageBuffer(img(0)) Line 0,0,0,24 Line 0,0,49,12 Line 0,24,49,13 For ri = 1 To 359 img(ri) = CopyImage(img(0)) RotateImage img(ri), ri next ri = 0 posx# = 400 posy# = 300 Graphics 800,600,16,2 Repeat Cls ri = (ATan2(mousey()-posy, MouseX()-posx) + 360) Mod 360 posx = posx + Cos(ri) posy = posy + Sin(ri) DrawImage img(ri), posx, posy flip Until KeyHit(1) Ich glaube da müsste alles drin stehen, was du wissen willst. Gruß, Smily0412 |
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
![]() |
TimBo |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke Smily! ![]() bei mir kommt zwar die Fehlermeldung Image does not exist, aber ich habe durch den Code die Prinzipien endlich mal gerafft. mfg Core 2 Duo |
||
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31 hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht. |
Beatenvoy |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
KEIN copy & past betreiben!
ist klar, wenn du das bild net hast, kanner das auch net laden. Code: [AUSKLAPPEN] For ri = 1 To 359 img(ri) = CopyImage(img(0)) RotateImage img(ri), ri next Repeat Cls ri = (ATan2(mousey()-posy, MouseX()-posx) + 360) Mod 360 posx = posx + Cos(ri) posy = posy + Sin(ri) DrawImage img(ri), posx, posy flip Until KeyHit(1) der Teil ist für dich wichtig.... Wobei ich keine 360 Bilder pro Gegner machen würde, daher setze lieber mal einen Step von 10 somit haste 36 das reicht voll und ganz. |
||
![]() |
TimBo |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hey cool für deine schnelle Antwort, aber bei mir bemangelt Blitz immer die Klammern hinter der BildVariablen..wenn ich sie wegmache findet er kein Fehler aber das PRogramm läuft ja dann logischerweise auch nicht. ![]() Weiß jemand was ich nun tun kann? mfg Core 2 Duo |
||
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31 hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht. |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du musst erst die variable dimmen:
Code: [AUSKLAPPEN] Dim img(360)
und die grundimage musst du in img(0) abspeichern da diese immer kopiert und danach gedreht wird |
||
Beatenvoy |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
jow bzw mit Step 10 dann
Code: [AUSKLAPPEN] DIM img(36)
|
||
![]() |
TimBo |
![]() Antworten mit Zitat ![]() |
---|---|---|
thx für die antwort ihr seit echt Spitze ![]() mh .. aba das habe ich schon gemacht aba es ging nicht, ich werde es trotzdem nochmal probieren! EDIT: So das is mien zusammengebastel, vll findet ihr ja den Fehler Code: [AUSKLAPPEN] Dim img(36)
ri=1 img(0) = CreateImage(50,25) SetBuffer ImageBuffer(img(0)) Line 0,0,0,24 Line 0,0,49,12 Line 0,24,49,13 For ri = 1 To 36 img(ri) = CopyImage(img(0)) RotateImage img(ri), ri next Graphics 800,600,24,2 Repeat ri = (ATan2(MouseY()-posy, MouseX()-posx) + 360) Mod 360 posx = posx + Cos(ri) posy = posy + Sin(ri) DrawImage img(ri), posx, posy Flip:Cls Until KeyHit(1) Jetzt kommt aber immer der Fehler "Arry Index Out Of Bounds" oder wieder "image does not exist" häää?? ich verstehe das nicht ich hab doch mit dim einen arry gemacht?! mfg Core 2 Duo |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
jo weil du von 0 bis 359 erzeugst, was nicht sein kann. du musst ri noch durch 10 teilen. | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
TimBo |
![]() Antworten mit Zitat ![]() |
---|---|---|
du meinst bei mod 360 bei atan2? also da habe ich jetz 35 eingesetzt kommt immer noch "Image does not exist" ![]() mfg Core 2 Duo |
||
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31 hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht. |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
nee nee die ganze variable ri ist 10 mal so groß wie sie sein sollte da sie von 0-359 geht und dein Array nur von 0-36 damit da die richtigen zahlen rauskommen musst du diese ewig lange zeile in klammern setzten und /10 hintendranne schreiben.
dann kommt bei 10 grad 1 raus bei 20 grad 2 und so weiter entsprechend musst du oben wenn du die bilder drehst noch den winkel mal 10 nehmen Code: [AUSKLAPPEN] RotateImage img(ri), ri *10
sodass img(1) um 10 grad gredreht ist img(2) um 20 usw. |
||
![]() |
TimBo |
![]() Antworten mit Zitat ![]() |
---|---|---|
soo ich habe es dann doch via PM mit Silver_Knee gelöst!
Danke euch allen! Code: [AUSKLAPPEN] Graphics 800,600,24,2
Dim img(360) img(0) = CreateImage(50,25) SetBuffer ImageBuffer(img(0)) Line 0,0,0,24 Line 0,0,49,12 Line 0,24,49,13 SetBuffer BackBuffer() MidHandle img(0) For ri = 1 To 360 img(ri) = CopyImage(img(0)) RotateImage img(ri), ri Next Repeat ri = (ATan2(MouseY()-posy, MouseX()-posx) + 360) Mod 360 posx = posx + Cos(ri) posy = posy + Sin(ri) DrawImage img(ri), posx, posy, 0 Flip:Cls Until KeyHit(1) ![]() mfg Core 2 Duo[/code] |
||
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31 hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht. |
Beatenvoy |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
teils besser noch durch 10 wie es Dreamora und ich schon sagten:
Code: [AUSKLAPPEN] DIM img(36)
... For ri = 1 To 360 Step 10 bild = ri /10 img(bild) = CopyImage(img(0)) RotateImage img(bild), ri Next Habs jetzt net getestet aber müsste so gehen, ist schneller und verbraucht weniger speicher Die Var "bild" hab ich nur fürs verständnis gemacht, kannst auch direkt umrechen |
||
- Zuletzt bearbeitet von Beatenvoy am Do, Aug 23, 2007 23:15, insgesamt einmal bearbeitet
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ausn Bauch heraus würd ich sagen, dass man
Code: [AUSKLAPPEN] RotateImage img(bild), ri
machen müsste. |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
TimBo |
![]() Antworten mit Zitat ![]() |
---|---|---|
jo ich denke auch das 360° spätestens bei 2 verschiedenen bildern mit ImagesCollide das Programm sehr abbremst ![]() |
||
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31 hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht. |
Beatenvoy |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
jow ist auch so ![]() ach und danke Eingeproggt, du hast natürlich recht, habs geändert |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group