Rotateimage problem
Übersicht

![]() |
sili95Betreff: Rotateimage problem |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich möchte ein bild drehen wenn man die Taste drückt aber das bild verschwimmt und das programm wird immer langsamer. hier mein Code
Graphics 640,480 SetBuffer BackBuffer() Global ground = LoadImage("C:\Dokumente und Einstellungen\Silvan\Desktop\das Game\land.bmp") Global pfosten=LoadImage("C:\Dokumente und Einstellungen\Silvan\Desktop\das Game\Unbenannt.bmp") Global auto= LoadImage ("C:\Dokumente und Einstellungen\Silvan\Desktop\das Game\auto.bmp") tempo=2 x=100 y=100 Repeat Cls DrawImage ground ,1,0,0 DrawImage pfosten,180,100,0 DrawImage pfosten,190,150,0 MidHandle auto DrawImage auto,x,y If KeyDown(203) Then x=x-tempo If KeyDown(205) Then x=x+tempo If KeyDown (200) Then y=y-tempo If KeyDown (208) Then y=y+tempo If ImagesCollide (auto,x,y,0,pfosten,180,100,0) Then print "bumm If ImagesCollide (auto,x,y,0,pfosten,190,150,0) Then Print "crash!!" If KeyDown(203) Then RotateImage auto,25 Flip Until KeyDown(1) ich hoffe auf eine gute ant. ![]() |
||
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Benutze bitte Codeboxen: [code.][/code.] (Ohne die Punkte hinter code).
Zu deinem Problem: RotateImage ist sehr langsam. Es sollte nicht in der Hauptschleife verwendet werden. Hier ist ein Tutorial für sowas: http://home.arcor.de/inpac/tut1.htm. |
||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
![]() |
sili95 |
![]() Antworten mit Zitat ![]() |
---|---|---|
was meinst du mit Codeboxen ich weiss nicht was das ist. ![]() und dieses toturial. bei dem ist die steuerung irgendwie sehr komisch es fährt immer irgendwohin.man hat gar kein richtiges handling gruss sili ![]() |
||
![]() |
ComNik |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dieses Problem hatten wir schon öfters^^
Also: Du musst ein Array erstellen und in jedes Element eine Kopie des Bildes speichern. Diese Kopie wird aber immer ein Stück gedreht. (36 Elemente reichen vollkommen aus!) Dann errechnest du mit hilfe von atan2 den winkel. Such mal einfach im Forum. Die Codeboxen stehen über deinem Textfeld. Unter den ganzen Smilys. So sehen sie aus: Code: [AUSKLAPPEN] print("Hello World!") ;code ;code mfg ComNik |
||
WIP: Vorx.Engine |
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das Tutorial zeigt, wie man das Auto schon vor der Schleife dreht und in ihr benutzt. Codeboxen kannst du machen indem du oben unter den Smilys auf "Code" drückst. | ||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
![]() |
sili95 |
![]() Antworten mit Zitat ![]() |
---|---|---|
ok das habe ich jetzt einigermasen verstanden aber jetzt dreht das Auto um eine bildecke und es fähr seitlich und wuselt irgendwo rum (diese steuerung könnte man benutzen wemm man durch eine Ölpfütze fährt ![]() |
||
![]() |
DaysShadow |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du nimmst deine x-variable mit einem Vielfachen von Cosinus deines aktuellen Winkels.
Für y das gleiche nur mit Sinus also: Code: [AUSKLAPPEN] x = x + 100 * Cos(angle - 90)
y = y + 100 * Sin(angle - 90) wobei die 100 auch durch eine Variable "speed" ersetzt werden könnte ![]() MfG DaysShadow |
||
![]() |
sili95 |
![]() Antworten mit Zitat ![]() |
---|---|---|
ok vielen dank das funkzt. aber könne irgeindeiner mir noch sagen wie den drehpunkt des autos in die mitte des bildes setzten kann, denn jetzt dreht es einfach an der Ecke. ich habe gemeint man muss irgendetwas mit midhandle machen aber ich weiss nicht recht wie das geht. ![]() gruss sil |
||
![]() |
Chrise |
![]() Antworten mit Zitat ![]() |
---|---|---|
BlitzBasic: [AUSKLAPPEN] HandleImage |
||
Llama 1 Llama 2 Llama 3
Vielen Dank an Pummelie, der mir auf seinem Server einen Platz für LlamaNet bietet. |
![]() |
sili95 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das funkzt irgendwie nicht recht und mit dieser Steuerung ist die kollision sehr ungenau geworden.
Code: [AUSKLAPPEN] Graphics 640,480,16,1
SetBuffer BackBuffer() Global ground = LoadImage("C:\Dokumente und Einstellungen\Silvan\Desktop\das Game\land.bmp") Global pfosten=LoadImage("C:\Dokumente und Einstellungen\Silvan\Desktop\das Game\Unbenannt.bmp") Global auto= LoadImage ("C:\Dokumente und Einstellungen\Silvan\Desktop\das Game\auto.bmp") tempo=2 x=100 y=100 ;-------------------- Dim Auto3 (359) TFormFilter =0 For winkel = 0 To 359 Auto3(winkel)=LoadImage("C:\Dokumente und Einstellungen\Silvan\Desktop\das Game\auto.bmp") RotateImage Auto3(winkel),winkel MaskImage Auto3(winkel),0,0,0 Next While Not KeyHit(1) Cls If KeyDown(203) Then winkel= winkel -1 If KeyDown(205) Then winkel= winkel +1 If winkel > 359 Then winkel = 0 If winkel < 0 Then winkel = 359 If KeyDown(200) Then x = x + tempo * Cos(winkel - 90) y = y + tempo * Sin(winkel - 90) EndIf DrawImage ground ,1,0,0 DrawImage pfosten,180,100,0 DrawImage pfosten,190,150,0 DrawImage Auto3(winkel),x,y If ImagesCollide (auto,x,y,0,pfosten,180,100,0) Then Print"warumm" If ImagesCollide (auto,x,y,0,pfosten,190,150,0) Then Print "warerdfsfdgfsgfwwsw" Flip Wend End dass kann doch nicht so schwer sein ![]() |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das Vorzeichen beim Sinus sollte korrekterweise Negativ sein:
Code: [AUSKLAPPEN] x = x + 100 * Cos(angle - 90)
y = y - 100 * Sin(angle - 90) Ansonsten würde ich Midhandle ![]() ![]() |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
sili95 |
![]() Antworten mit Zitat ![]() |
---|---|---|
also das mit midhandle ist kapiert aber wenn ich bei Sinus ein minus hinsetzte dann ist die steuerung wieder Krüppel und die kollision ungenau um fast einen halben cm also mit dem +beim Sinus läufts viiiiel besser aber wieso kollidiert es nicht mehr richtig? | ||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das passende Bild zum Winkel ist in Auto3(Winkel), das zeichnest du auch. Auf Kollision prüfst du mit dem Bild auto... | ||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
sili95 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ach ok hab alles verstand vielen Dank für die vielen guten Tipps ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group