drehpunkt eines sprites verlegen

Anfängerfragen zum Programmieren mit PureBasic.
super_castle
Beiträge: 557
Registriert: 29.11.2005 15:05

drehpunkt eines sprites verlegen

Beitrag von super_castle »

hallo, wie kann man den drehpunkt eines sprites verlegen?
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

simpel garnicht.

wenn es dir wirklich um eine drehpunktverlegung geht,
dann musst du den sprite dementsprechen größer machen mit leerraum.

die bessere alternative ist ein neuberechnen des anzeigepunktes per sin/cos verschiebung.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

genau

X,Y - Position
dx, dy sind die entfernungen zum mittelpunkt das Sprites
w ist der Winkel

Code: Alles auswählen

InitSprite()
InitSprite3D()
InitKeyboard()

OpenScreen(1024, 768, 32, "")

#PI = 3.14159265

CreateSprite(1,256,256, #PB_Sprite_Texture)
StartDrawing(SpriteOutput(1))
 Box(0,0,256, 256, RGB(255,255,255))
StopDrawing()

CreateSprite3D(1,1)

X.f = 512
Y.f = 384
dx.f = 128
dy.f = 128


Repeat
 w+1
 ExamineKeyboard()
 Delay(10)
  ClearScreen(0,0,0)
   Start3D()
    RotateSprite3D(1, w, 0)
    DisplaySprite3D(1, X-Cos(w*(#PI/180))*dx+Sin(w*(#PI/180))*dy, Y-Sin(w*(#PI/180))*dx-Cos(w*(#PI/180))*dy)
   Stop3D()
  FlipBuffers()
Until KeyboardPushed(#PB_Key_All)
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
super_castle
Beiträge: 557
Registriert: 29.11.2005 15:05

Beitrag von super_castle »

klappt wunderbar, danke.

dieses spritedrehen(auch in den anderen/fremden programmen), wird das immer mit den sin/cos gemacht oder gibt es auch eine routine in direktx7.
super_castle
Beiträge: 557
Registriert: 29.11.2005 15:05

Beitrag von super_castle »

vielleicht kannst du mir hier weiterhelfen?

ich habe in 3d einen würfel, rechts und links möchte ich 2 scheiben/räder anbringen(plazieren), dann möchte ich den würfel mit den rädern komplett drehen, so, als wäre es ein karren/teil
ich finde keine lösung aus der mathe..
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

entweder du nimmst ein komplettes 3D-model, oder du renderst alles vor.

supereinfache lösung gibbet dafür nich...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
super_castle
Beiträge: 557
Registriert: 29.11.2005 15:05

Beitrag von super_castle »

wenn ich ein komplettes modell nehme, wie kann ich dann die räder und den rumpf mit verschiedenen farben einfärben?
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

indem du sie so vordefinierst...

vielleicht reden wir grad aneinander vorbei, aber normal ist das doch kein problem...

verschiedene farben...
normal kannst du jeder detail mit einer eigenen farbdefinition versehen...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
super_castle
Beiträge: 557
Registriert: 29.11.2005 15:05

Beitrag von super_castle »

ich erstelle mit milkshape den quader und die beiden scheiben, färbe die in milkshape ein und mit dem odre-exporter werden die mesh dann für pure exportiert. in pure erscheinen die dann aber nicht in farbe, was mache ich dann für einen fehler?
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

den denkfehler, dass das exportierte .mesh-format dem geforderten .mesh-format entsprechen würde...

das ogre-lowlevel-mesh, das gelesen werden kann, hat nix zu schigge mit besseren meshes.

.mesh ist kein allgemeingültiges format. ich könnte sogar ne .txt als .mesh umbenennen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten