Atan2
Übersicht

Gehe zu Seite Zurück 1, 2, 3 Weiter
Razor1994 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ok ich versuchs mal.
danke |
||
Razor1994 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Es funktioniert nicht es kommt immer Expecting 'End Function'
Hier mein CodeCode: [AUSKLAPPEN] Graphics 800, 600, 0, 2 SetBuffer BackBuffer() AutoMidHandle 1 Global player = LoadImage("C:\Programme\Blitz2DDemo\help\resources\samples\Graphics\player.bmp") Global player_x=250 Global player_y=300 Dim spielerbild(3) For i = 0 To 3 spielerbild(i) = player Next Repeat Cls moveHero() turnHeroimage() turnHero() Flip Until KeyHit(1) End Function moveHero() If KeyDown(203) Then player_x=player_x-5 If KeyDown(205) Then player_x=player_x+5 If KeyDown(208) Then player_y=player_y+5 If KeyDown(200) Then player_y=player_y-5 DrawImage player,player_x,player_y End Function ; Spielerbild in Gehrichtung Function turnHeroimage() spielerbild(0) = 0 spielerbild(1) = 90 spielerbild(2) = 180 spielerbild(3) = 270 End Function Function turnHero() If KeyHit(203) Then DrawImage spielerbild(3),player_x,player_y If KeyDown(205) Then DrawImage spielerbild(1),player_x,player_y If KeyDown(208) Then DrawImage spielerbild(2),player_x,player_y If KeyDown(200) Then DrawImage spielerbild(0),player_x,player_y End Function |
||
- Zuletzt bearbeitet von Razor1994 am Mi, Jul 08, 2009 16:29, insgesamt einmal bearbeitet
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mach mal bei turnHeroImage die ganzen ° weg. | ||
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 |
Razor1994 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Jetzt kommt wenn ich eine Pfeiltaste drücke image does not exist. | ||
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dann ist das Bild wohl nicht an der Stelle, von der du es lädst. | ||
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 |
Razor1994 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
doch sicher sonst funktionierts ja auch und es ist ja auch auf dem bildschirm nur wenn ich eine Pfeiltaste drücke dann kommt das. | ||
tobias12 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] If KeyHit(203) Then DrawImage ,player_x,player_y, spielerbild(3)
so sollte es sein, nicht Code: [AUSKLAPPEN] If KeyHit(203) Then DrawImage spielerbild(3),player_x,player_y
aber überdenke nochmals dein system, ist ein bisschen kompliziert[/quote] |
||
Mein Projekteforum |
Razor1994 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich probiers mal aber in der Hilfe hier steht
Aufruf DrawImage bild, x, y [, frame] Parameter bild Identität des Bildes (z.B. mit LoadImage ermittelt) x Koordinate X auf dem Bildschirm y Koordinate Y auf dem Bildschirm frame Framebild bei Animationsbildern (ab 0) |
||
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] If KeyHit(203) Then DrawImage spielerbild(3),player_x,player_y
ist völlig richtig... ![]() |
||
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 |
Razor1994 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ok aber wo liegt dann der Fehler? | ||
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Schreib mal statt
Code: [AUSKLAPPEN] spielerbild(i) = player Das hier: Code: [AUSKLAPPEN] spielerbild(i) =CopyImage(player) |
||
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 |
![]() |
Starwar |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du musst player nicht zeichen. Dein System ist zu kompliziert. Lass die Funktionen weg und machs in eine Schleife. Außerdem sind Variablen, sonalge sich keine Arrays, Konstanten oder mit Global definiert wurden, nur lokal, das heißt nur im Hauptprogramm, nicht in Funktionen verfügbar -> Tutorials lesen und verstehen!
MFG |
||
Razor1994 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Und jetzt Code: [AUSKLAPPEN] Graphics 800, 600, 0, 2 SetBuffer BackBuffer() AutoMidHandle 1 Global player = LoadImage("C:\Programme\Blitz2DDemo\help\resources\samples\Graphics\player.bmp") Global player_x=250 Global player_y=300 Dim spielerbild(3) For i = 0 To 3 spielerbild(i) = CopyImage (player) Next Repeat Cls spielerbild(0) = 0 spielerbild(1) = 90 spielerbild(2) = 180 spielerbild(3) = 270 If KeyDown(203) Then player_x=player_x-5 If KeyDown(205) Then player_x=player_x+5 If KeyDown(208) Then player_y=player_y+5 If KeyDown(200) Then player_y=player_y-5 DrawImage player,player_x,player_y If KeyHit(203) Then DrawImage spielerbild(3),player_x,player_y If KeyDown(205) Then DrawImage spielerbild(1),player_x,player_y If KeyDown(208) Then DrawImage spielerbild(2),player_x,player_y If KeyDown(200) Then DrawImage spielerbild(0),player_x,player_y Flip Until KeyHit(1) End |
||
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
spielerbild(0) = 0
spielerbild(1) = 90 spielerbild(2) = 180 spielerbild(3) = 270 Dadurch geht das Bild verloren, da du etwas anderes in den Variablen speicherst. |
||
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 |
Razor1994 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ja jetzt seh ichs auch aber ich habs genauso gemacht wie ers gesagt hat
Starwar hat Folgendes geschrieben: Mhh.
Ok, ich werd dir keinen Code geben, dir aber einen Lösungsweg aufschreiben. Zuerst macht du eine Array von der Göß 4. (Also als Parameter 3 angeben). Dann lädst du das Bild in jeden Arrayeintrag. Du drehst es für jeden Eintag anders. (Arrayeintrag 0 = 0°, AE 1= 90°,...) Dann kommt die Hauptschleife: Du machst für jede Pfeiltaste eine If-Bedingung mit KeyHIT ![]() Dann zeichnest du das Bild aus dem entsprechendem Array-Eintrag (Array als Parameter für DrawImage Image angeben). MFG |
||
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Eher so:
Code: [AUSKLAPPEN] For i = 0 To 3 spielerbild(i) = CopyImage (player) RotateImage spielerbild(i), i*90 ;Dreht das Bild Next |
||
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 |
![]() |
Starwar |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nein.
Wen du genau leist habe ich gesagt du sollt die Bilder in die Array laden. Code: [AUSKLAPPEN] player=loadimage(...) spielerbild(0)=player spielerbild(1)=player spielerbild(2)=player spielerbild(3)=player EDIT: Wenn es nicht funbktioniert CopyImage benutzen. In B+ funzt es. Und dann solst du das Bild drehen, nicht die Variable überschreiben. Code: [AUSKLAPPEN] Rotateimage spierbild(1),90 Rotateimage spierbild(2),180 Rotateimage spierbild(3),270 Code: [AUSKLAPPEN] drawimage spierbild(a),x,y MFG |
||
Razor1994 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Starwar hat Folgendes geschrieben: Nein.
Wen du genau leist habe ich gesagt du sollt die Bilder in die Array laden. Code: [AUSKLAPPEN] player=loadimage(...) spielerbild(0)=player spielerbild(1)=player spielerbild(2)=player spielerbild(3)=player Hab ich ja Code: [AUSKLAPPEN] For i = 0 To 3 spielerbild(i) = CopyImage (player) Starwar hat Folgendes geschrieben: Und dann solst du das Bild drehen, nicht die Variable überschreiben. Code: [AUSKLAPPEN] Rotateimage spierbild(1),90 Rotateimage spierbild(2),180 Rotateimage spierbild(3),270 Code: [AUSKLAPPEN] drawimage spierbild(a),x,y MFG Hab ich versucht aber dann hat es sich nur im Kreis gedreht. |
||
Razor1994 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich habe es geschafft bis auf das das es nur zu sehen ist wenn man eine Pfeiltaste drückt.
Code: [AUSKLAPPEN] Graphics 800, 600, 0, 2 SetBuffer BackBuffer() AutoMidHandle 1 Global player = LoadImage("C:\Programme\Blitz2DDemo\help\resources\samples\Graphics\player.bmp") Global player_x=250 Global player_y=300 Dim spielerbild(3) Repeat Cls For i = 0 To 3 spielerbild(i) = CopyImage (player) RotateImage spielerbild(i), i*90 ;Dreht das Bild Next If KeyDown(203) Then player_x=player_x-5 If KeyDown(205) Then player_x=player_x+5 If KeyDown(208) Then player_y=player_y+5 If KeyDown(200) Then player_y=player_y-5 If KeyDown(203) Then DrawImage spielerbild(3),player_x,player_y If KeyDown(205) Then DrawImage spielerbild(1),player_x,player_y If KeyDown(208) Then DrawImage spielerbild(2),player_x,player_y If KeyDown(200) Then DrawImage spielerbild(0),player_x,player_y Flip Until KeyHit(1) End |
||
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Graphics 800, 600, 0, 2 SetBuffer BackBuffer() AutoMidHandle 1 Global player = LoadImage("C:\Programme\Blitz2DDemo\help\resources\samples\Graphics\player.bmp") Global player_x=250 Global player_y=300 Global frame = 0 Dim spielerbild(3) Repeat Cls For i = 0 To 3 spielerbild(i) = CopyImage (player) RotateImage spielerbild(i), i*90 ;Dreht das Bild Next If KeyDown(203) Then player_x=player_x-5 If KeyDown(205) Then player_x=player_x+5 If KeyDown(208) Then player_y=player_y+5 If KeyDown(200) Then player_y=player_y-5 If KeyDown(203) Then frame=3 If KeyDown(205) Then frame=1 If KeyDown(208) Then frame=2 If KeyDown(200) Then frame=0 DrawImage spielerbild(frame), player_x, player_y Flip Until KeyHit(1) End So müsste es gehen. Es gibt nun eine neue Variable namens "frame", in der die Bewegungsrichtung gespeichert wird. Das Bild wird in jedem Schleifendurchlauf gezeichnet. |
||
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 |
Gehe zu Seite Zurück 1, 2, 3 Weiter
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group