3D Entity System [DE]

Previous topic - Next topic

Heiko

naja, ich brauche wie gesagt pivotkollisionsfähigkeit.
und das problem mit der .ddd datei, was gernot ja schon kennt.
kann nämlich sein, dass ich dann keine animationsframes nutzen kann.
naja, die pivotkollisionen brauch ich auf jeden fall, sonst kann ich nix machen.

Schranz0r

Ich brauch nen Porsche, sonnst kann ich nicht autofahren! Denk mal rüber nach!
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Heiko

ähm es gibt keine alternative dazu, höchstens schildbürgerhafte sinnlosspherenerstellerei.

Kitty Hello

Gehen Pivot Kollisionen? Ich meine ja.
-> Zumindest steht's so in der Logdatei.

Heiko

wo steht das?
also ich hatte das ja zuletzt noch gepostet, und da ging es nicht, bin voll durchs terrain gefallen, wenn ich stattdessen aber ein entitycreatesphere genommen hab, ging es, also gingen pivotkollisionen nicht, es sei denn, du hast es in den letzten 1-2 wochen korrigiert.

Kitty Hello

Poste mal ein Beispiel.

Heiko

bitteschön, is noch ein code, wo ich rumprobiert hab, der aber die kollisionen beinhaltet, wenn auch in einfacher form.

Code (glbasic) Select


LOCAL gplayer = 101
LOCAL ground = 102


light = EntityCreateLight(RGB(255,255,255) )
camera=EntityCreateCamera()
          EntitySetCameraRange(camera,1,1000)

level = EntityLoadMesh("level.ddd")
     leveltex=EntityLoadTexture("level.bmp")
          EntityApplyTexture(level, leveltex, -1 )
                   EntitySetGroup(level, ground)

juru = EntityLoadMesh("juru.ddd")
     jurutex=EntityLoadTexture("juru.bmp")
          EntityApplyTexture(juru, jurutex, -1 )


stumpf = EntityLoadMesh("stumpf.ddd")
     stumpftex = EntityLoadTexture("stumpf.bmp")
          EntityApplyTexture(stumpf, stumpftex, -1)
               EntityScale(stumpf, 20, 20, 20)


stamm = EntityLoadMesh("stamm.ddd")
     stammtex = EntityLoadTexture("stamm.bmp")
          EntityApplyTexture(stamm, stammtex, -1)

pivotfuss = EntityCreatePivot()
              EntityCollisionSetRadius(pivotfuss, 1)
                 EntitySetGroup(pivotfuss, gplayer)



EntitySetPosition(pivotfuss, 0, 1, 0)
EntitySetPosition(level, 0, 0, 0)
EntitySetPosition(stumpf, -2, 10, -2)
EntitySetPosition(stamm, 10, 19, 0)
EntitySetPosition(camera, 0, 7, -15)
EntitySetRotation(stamm, 0, 70, 0)
EntitySetPosition(juru, 0, 10, 5)
EntitySetRotation(camera, 15, 0, 0)

EntityParent(pivotfuss, juru)
EntityParent(light, juru)
EntityParent(camera, juru)
EntityTranslate(light, 0, 2, -2)

EntityEnable(camera, TRUE)

//Kollisionsgruppen initialisieren
EntityAddCollision(gplayer, ground, 0)

//
EntityDebug(TRUE)
WHILE TRUE
GOSUB Kollisionen
GOSUB Movement
GOSUB UpdateMovement
EntityDrawSystem()
EntityUpdateCollisions()
X_MAKE2D
PRINT updown, 10, 10
PRINT EntityGetY(juru), 10, 20
SHOWSCREEN
WEND

SUB Kollisionen:
             LOCAL ncol = EntityCollisionCount(pivotfuss)
              FOR i = 1 TO ncol
                 IF EntityCollisionEntity(pivotfuss, EntityGetName$(i)) = level THEN collevel = 1
              NEXT
ENDSUB

SUB Movement:
//Sprung
            IF collevel = 1
               updown = 0.01
               collevel=0
             IF KEY(57) THEN updown=0.5
            ELSE
               updown=updown-0.02

            ENDIF

// drehen und bewegen
            IF KEY(203) THEN jy = 1
            IF KEY(205) THEN jy = -1
            IF KEY(200) THEN jz = 0.5
            IF KEY(208) THEN jz = -0.5

ENDSUB


SUB UpdateMovement:

EntityRotate(juru, 0, jy, 0)
EntityMove(juru, 0, 0, jz)
EntityMove(juru,0,updown,0)
EntityRotate(stamm, 0, 0, 1)
jy=0;jz=0

ENDSUB


mach aus dem
Code (glbasic) Select
pivotfuss = EntityCreatePivot() mal eine sphere, da funktioniert es.

Kitty Hello

Wirf mal die Objekte raus und mach "cubes", damit ich ohne Modelle testen kann.
Bitte zunächst auch statt EntityScale das Objekt korrekt skaliert erstellen.
Du verwendest EntityTranslate, also ist Deine Datei nicht aktuell.

Ich lad' nochmal alles neu hoch, damit wir gleiche Quellen haben. Der Würfel ist bei mir auf dem "Level" stehen geblieben.

Heiko

#263
okay ich mach mal cubes, bzw. ich schieb hier mal das projekt hoch.

mach aus dem pivot ein sphere, und das entitytranslate hab ich selber in das ES gemacht, also ein eigener befehl, aber nicht so tragisch.

bei sphere funktioniert es, bei pivot nicht.

p.s. du kannst die t3dentity.gbas, auch einfach hier in einen post einfügen, bzw. nen link dazu posten.die beispiele haben sich ja nicht weiter verändert, denk ich mal.

so, hier das projekt.
http://www.zshare.net/download/153015562a5035ab/


p.s. weil du geschrieben hast, statt zu skalieren, das modell richtig skaliert erstellen, das ist immer so eine sache, diese umständliche umwandlung in .ddd ist schon etwas nervig, das wird wohl niemand hier abstreiten.bin immer noch für eine .3ds unterstützung.

Heiko

keine reaktion?!?

Kitty Hello

Hoppla, hab' ich übersehen!

Heiko

und gernot, machst du es?

wie schauts mit dem newton zeugs aus, erstmal auf eis gelegt, oder kann man demnächst damit rechnen?

Kitty Hello

bist online? Geh in Chat, wenn Du Zeit hast...

Heiko

#268
okay bis auf das ddd problem hab ich erstmal alles.
aber ich animier den sonic erstmal nicht, weil das vergebene liebesmüh ist, wenn es dann eh nicht geht.

achja, man kann ja auch nur eine textur für so ein ddd nehmen, richtig?

Schranz0r

Auf was willste den sonnst ne Textur machen?
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard