Spieler Drehen
Übersicht

![]() |
SephkaBetreff: Spieler Drehen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi ich möcht die Bilder des Spielers in einer Array speichern:
Code: [AUSKLAPPEN] TFormFilter 0
Dim spieler(359) Global spielerb=LoadImage("P.png") For winkel%=0 To 359 spieler(winkel%)=RotateImage spielerb,winkel MaskImage spieler(winkel),255,255,255 Next Es kommt aber die Fehlermeldung: Expecting 'Next' hinter dem Rotateimage spielerb Warum? such schon seit ner Stunde den Fehler.... |
||
Mein Freund und Helfer:
Win7 Home Premium SP1 AMD Athlon II X4 645 3.1GHZ 8GB Ram 64bit |
Freak123 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
spieler(winkel%)=RotateImage spielerb,winkel
kann nicht funktionieren. du möchtest etwas zurückgeben, also musst du ( und ) verwenden. also: spieler(winkel%)=RotateImage( spielerb,winkel ) aber ich glaube Rotateimage gibt keinen Wert zurück, sondern du musst spielerb speichern also: spieler(0)=loadimage("...") For i=1 To 359 spieler(i)=CopyImage(spieler(0)) RotateImage spieler(i), i Next ich hoffe das wars. |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Schaut doch in die Online Hilfe...
![]() ![]() Erklärung mit Beispiel. |
||
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) |
![]() |
Raiden93 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habe das mal ausprobiert aber irgendwie schmiert das Programm beim Start ab?
Code: [AUSKLAPPEN] AppTitle "Rotate"
Graphics 800,600,32,2 SetBuffer BackBuffer() Global FPS_Timer = CreateTimer(60) TFormFilter = 0 Global GFX_Hero = LoadImage("GFX/Hero.png") MaskImage GFX_Hero,255,0,255 SetBuffer ImageBuffer(GFX_Hero) Global TEMP Global i SetBuffer FrontBuffer() Repeat Cls For i=0 To 359 TEMP=CopyImage(GFX_Hero) RotateImage TEMP,i Next Flip 0 WaitTimer (FPS_Timer) Until KeyHit(1) |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du müllst in der Repeat-Schleife den Grafikspeicher voll das es nur so raucht ![]() ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
Raiden93 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hmm ich habe es mir die Nacht ein par mal angeschaut und rum Experimentiert aber immer das gleiche ... könnte mir jemand mein Beispiel mal richtig machen das ich gucken kann was ich Falsch gemacht habe :/ ?
Code: [AUSKLAPPEN] AppTitle "Rotate"
Graphics 800,600,32,2 SetBuffer BackBuffer() Global FPS_Timer = CreateTimer(60) TFormFilter = 0 Global GFX_Hero = LoadImage("GFX/Hero.png") MaskImage GFX_Hero,255,0,255 Global Hero_X# Global Hero_Y# Global Hero_Speed# Global Winkel ;<-------------- ROTATE Dim Hero(359) For Winkel = 0 To 359 Hero(Winkel) = LoadImage("GFX/Hero.png") RotateImage Hero(Winkel),Winkel MaskImage Hero(Winkel),255,0,255 Next Repeat Cls DrawImage Hero(Winkel),50,50 Flip 0 WaitTimer (FPS_Timer) Until KeyHit(1) |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dein letzter Code würde erstmal funktionieren (wenn auch mit einfachsten Mitteln optimierbar), nur wird er beim DrawImage, bzw. dem Zugriff auf das Array durch DrawImage, abschmieren. Nach dem verlassen der For...Next zum drehen der Bilder hat "Winkel" einen Wert von 360.... ![]() ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
Raiden93 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ok sonst gibt es keine besseren Alternativen für B3d? da die Ladezeiten wirklich hoch sind. | ||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Gäbe es indem man ein Sprite lädt, das Bild als Textur verwendet und das Sprite nach Bedarf dreht. Was aber, mal frei aus der Ferne betrachtet, Deine Programmierkünste im jetzigen Stadium um ein paar Meter überholen würde, denke ich. Ich habs jetzt nicht probiert, aber es könnte schon einen Speedvorteil bringen das Bild nicht stetig neu zu laden, sondern mit CopyImage im Speicher zu vervielfältigen. Ich bin jetzt nicht wirklich ein Hardwarefreak, kann mir aber gut vorstellen das der Grafikspeicher alleine schneller ist als mit Festplatte im Schlepptau. | ||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
... genau das macht Hectics Draw3D ![]() |
||
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) |
![]() |
Raiden93 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Naja mein Rechner ist nicht gerade der Schlechteste ^^.Aber ich werde mich erstmal mit den Copy Sachen beschäftigen, den ich will ja alles etwas bis gut können ![]() |
||
![]() |
Sephka |
![]() Antworten mit Zitat ![]() |
---|---|---|
HAAAALLLLLOOOO schon längstens gelöst!!!!
Trotzdem Danke! |
||
Mein Freund und Helfer:
Win7 Home Premium SP1 AMD Athlon II X4 645 3.1GHZ 8GB Ram 64bit |
![]() |
worschtbrot |
![]() Antworten mit Zitat ![]() |
---|---|---|
Raiden93 hat Folgendes geschrieben: Ok sonst gibt es keine besseren Alternativen für B3d? da die Ladezeiten wirklich hoch sind.
Ich hatte vor einiger Zeit das selbe Problem, welches ich ganz einfach dadurch gelöst habe, dass ich nur jeden dritten, vierten oder fünften Winkel geladen habe. Allein das verkürzt die Ladezeit enorm. Zudem solltest du, wenn du mehrere Bilder in der Form rotieren lassen willst, alles mit nur einer einigen For-Schleife drehen, auch das verkürzt die Ladezeit. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group