Spriterotation um die Y-Achse
Spriterotation um die Y-Achse
Ich suche derzeit eine Möglichkeit, um ein Sprite (eigentlich ganz simpel) um die Y-Achse zu drehen. Also als ob man ein Blatt Papier auf die Vorder-, bzw. Rückseite dreht.
Dabei soll dies wie bei einer Animation möglich sein.
Vorder und Rückseite sind vorhanden, bräuchte dann halt einen Befehl wie DrehSprite(sprite, winkel)
Ideen waren:
TransformSprite3d: Ich Blick die Koordinatengebung nicht wirklich und weiss somit nichts damit anzufangen.
ClipSprite: War nur so eine Idee, müsste funktionieren, aber wie bin ich mir noch nicht so ganz sicher.
Deswegen einfach mal eine Frage an euch, wie ihr das machen würdet!
Dabei soll dies wie bei einer Animation möglich sein.
Vorder und Rückseite sind vorhanden, bräuchte dann halt einen Befehl wie DrehSprite(sprite, winkel)
Ideen waren:
TransformSprite3d: Ich Blick die Koordinatengebung nicht wirklich und weiss somit nichts damit anzufangen.
ClipSprite: War nur so eine Idee, müsste funktionieren, aber wie bin ich mir noch nicht so ganz sicher.
Deswegen einfach mal eine Frage an euch, wie ihr das machen würdet!
wenn du kein 3D-Räumlichen effekt brauchst kannst du das ganz einfach mit ZoomSptite lösen:
Code: Alles auswählen
ZoomSprite3D(#Vorn, Breit, Hoch*Cos(Winkel*#PI/180))
DisplaySprite3D(#Vorn, x, y-Hoch*Cos(Winkel*#PI/180)/2)
ZoomSprite3D(#Hinten, Breit, -Hoch*Cos(Winkel*#PI/180))
DisplaySprite3D(#Hinten, x, y+Hoch*Cos(Winkel*#PI/180)/2)
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
nein. clipping ist eine reine 2D operation.
aber du kannst ein Bild rechteckig entwerfen, z.b. 700x300
und in nem Grafikprogramm, z.b. IrfanView, auf 512x512 resizen.
das nimmst du als texture/basissprite,
und mit ZoomSprite3D( Nr, 700, 300) sieht es fast genauso aus wie vorher.
oder du packst dein 700x300 auf ein 1024x1024 und definierst das drumrum als transparent.
aber du kannst ein Bild rechteckig entwerfen, z.b. 700x300
und in nem Grafikprogramm, z.b. IrfanView, auf 512x512 resizen.
das nimmst du als texture/basissprite,
und mit ZoomSprite3D( Nr, 700, 300) sieht es fast genauso aus wie vorher.
oder du packst dein 700x300 auf ein 1024x1024 und definierst das drumrum als transparent.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
jo ist richtig, aber ich glaube ein sollte ist hie besser:gnasen hat geschrieben:Ich dachte ZoomSprite3D() dürfte nur in 2er Potenzen genutzt werden, wird zumindest immer wieder im Forum gesagt
(was ich damit sagen will 256 * 256 -> 128 * 128)
Immer mehr "alte" Grafikkarten werden abgeschaltet, und bei neueren kannst du auch problemlos mit unsauberen Wertenarbeiten, ohne Probleme zu bekommen.
Aber nutze trotzdem zur Sicherheit die 2^n Grafiken
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Also auf ATi-Karten, nVIDEA-Karten und selbst einigen NoName-NoteBook-Karten hatte ich jetzt noch nie Probleme, wenn ich meine Sprites 20 x 30 oder 100 x 90 oder sonst irgendwie definiert habe.
Wo es zu Problemen kommen kann ist, wenn du größere Sprites in komischen Formaten wählst.
Und so wie Stargate sagt, du kannst, wenn es sich aber vermeiden lässt, mach es nicht.
Bedenke auch! Mehrere kleinere Sprites können schneller sein als ein großes Sprite, was insgesamt genauso groß ist wie alle kleinen Sprites zusammen.
Hatte mal einen Test gemacht mit einem Sprite, was 640 x 480 war auf einer SIS-Notebook Grafikkarte und dieses Sprite mal aufgeteilt in 20 x 15 Sprites, die alle 32 x 32 groß waren und das war um einiges schneller.
Ich denke, Grafikkarten kommen heute zwar mit jeder Größe klar, schneller sind aber quadratische Größen.
Wo es zu Problemen kommen kann ist, wenn du größere Sprites in komischen Formaten wählst.
Und so wie Stargate sagt, du kannst, wenn es sich aber vermeiden lässt, mach es nicht.
Bedenke auch! Mehrere kleinere Sprites können schneller sein als ein großes Sprite, was insgesamt genauso groß ist wie alle kleinen Sprites zusammen.
Hatte mal einen Test gemacht mit einem Sprite, was 640 x 480 war auf einer SIS-Notebook Grafikkarte und dieses Sprite mal aufgeteilt in 20 x 15 Sprites, die alle 32 x 32 groß waren und das war um einiges schneller.
Ich denke, Grafikkarten kommen heute zwar mit jeder Größe klar, schneller sind aber quadratische Größen.

Kinder an die Macht http://scratch.mit.edu/
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
äh.. Xaby...
hier redet keiner von Sprites, sondern von Sprites3D, das sind genaugenommen 4-vektorige meshes.
für diese gab und gibt es teilweise immer noch die format-restriktionen.
für normale Sprites spielt das format (fast*) keine rolle.
(* es kann probleme bereiten, ein sprite clippen zu wollen, das größer als der screen ist)
hier redet keiner von Sprites, sondern von Sprites3D, das sind genaugenommen 4-vektorige meshes.
für diese gab und gibt es teilweise immer noch die format-restriktionen.
für normale Sprites spielt das format (fast*) keine rolle.
(* es kann probleme bereiten, ein sprite clippen zu wollen, das größer als der screen ist)
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.