Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

remmel

Frischling

  • »remmel« ist der Autor dieses Themas

Beiträge: 9

Wohnort: Heiligenberg

Beruf: Schüler

  • Private Nachricht senden

1

14.06.2004, 21:22

Feste Objekte mit TriBase?

Hallo, ich bins mal wieder

Nächste Frage:
Ich wollte grade einen Planeten zum testen in mein Spiel einbauen,
wie es mit DirectX(ohne TriBase) geht, weiß ich:

Quellcode

1
2
3
mWorld = tbMatrixTranslation(tbVector3(5.0f, 1.0f, 5.0f));
g_pD3DDevice->SetTransform(D3DTS_WORLD, (D3DMATRIX*)(&mWorld));
m_pPlanetModel->DrawSubset(0);


oder so ähnlich

aber wie mache ich das mit der TriBase-Engine?
gibts da ne spezielle Funktion für? oder kann ich das wie oben machen obwohl ich die TriBase benutze?


mfg
remmel

Klaus

Treue Seele

Beiträge: 245

Wohnort: Stuttgart

Beruf: Schüler

  • Private Nachricht senden

2

14.06.2004, 22:02

Re: Feste Objekte mit TriBase?

Ganz offensichtlich benutzt du in obigem Code bereits
die TriBase Engine... "tbMatrixTranslation" und
"tbVector3" stammen beide daraus.
Mozilla Firefox
The Browser - reloaded

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

3

14.06.2004, 23:32

Naja du musst nur ein Objekt der Klasse tbObjekt ableiten, wenn du den planeten nicht nur grafisch drin haben willst.

remmel

Frischling

  • »remmel« ist der Autor dieses Themas

Beiträge: 9

Wohnort: Heiligenberg

Beruf: Schüler

  • Private Nachricht senden

4

15.06.2004, 15:11

ok, ich probiers nochmal

remmel

Frischling

  • »remmel« ist der Autor dieses Themas

Beiträge: 9

Wohnort: Heiligenberg

Beruf: Schüler

  • Private Nachricht senden

5

15.06.2004, 16:13

grafisch wollte ich es eigentlich schon darstellen, aber die tbObject Klasse hat keine Funktion um ein Modell zu laden, das geht nur mit tbModel, aber da weiß ich nicht, wie ich die Position setzen soll

mfg
remmel

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

6

15.06.2004, 16:31

Hmmm wie wäre es mit tbVector3 m_vXAxis; tbVector3 m_vYAxis; tbVector3 m_vZAxis; sind übrigensin der tbobject klasse...

Klaus

Treue Seele

Beiträge: 245

Wohnort: Stuttgart

Beruf: Schüler

  • Private Nachricht senden

7

16.06.2004, 14:49

Mit dem Ding, das du von tbObject ableitest, kannst du dann ja das darin enthaltene tbModel laden und rendern...
Mozilla Firefox
The Browser - reloaded

remmel

Frischling

  • »remmel« ist der Autor dieses Themas

Beiträge: 9

Wohnort: Heiligenberg

Beruf: Schüler

  • Private Nachricht senden

8

17.06.2004, 20:53

ok, hat geklappt...
ich hab das alles in die Renderfunktion von der Game-Klasse geschrieben, da hat es super funktioniert. Jetzt habe ich aber ne eigene Klasse für die Planeten geschrieben(ist von tbObject abgeleitet), die wird genauso aufgerufen wie die Shiffe bei Galactica, also mit LoadPlanetTypes, RenderPlanets usw. die daten werden aus der Ini gelesen.

Jetzt das Problem, das spiel stürtz ab wenn ich es laden will. wenn ich es debugge meint er er hat ein Problem bei dem Aufruf der Render funktion der Model klasse:

in CPlanet::Render

Quellcode

1
2
3
4
5
6
.......
mWorld = tbMatrixTranslation(tbVector3(m_pType->vPosition));
    tbDirect3D::SetTransform(D3DTS_WORLD, mWorld);

    // Das Modell rendern
    m_pType->pPlanetModel->Render();


genauso habe ich das auch vorher in der Rendermethode der Game-Klasse geschrieben, doch wenn ich von der Game-Klasse die Funktion der Planet-Klasse aufrufe, kommt eben dieser Renderfehler!

in CGame::LoadPlanetTypes:

Quellcode

1
2
3
4
5
6
7
........
            // Modell laden
            pType->pPlanetModel = new tbModel;
            if(pType->pPlanetModel->Init(pType->acModel, "Data\\", "",
                                   D3DPOOL_DEFAULT, 0, D3DPOOL_DEFAULT, 0,
                                   FALSE, FALSE))
......

und in der CGame::RenderPlanets

Quellcode

1
2
3
4
5
6
7
8
9
10
11
tbResult CGame::RenderPlanets(float fTime)
{
    int iPlanet;
    // Jeden Planeten durchgehen
    for(iPlanet = 0; iPlanet < m_iNumPlanetTypes; iPlanet++)
    {
        // Rendern!
        m_aPlanet[iPlanet].Render(fTime);
    }
    return TB_OK;
}



ich hoffe ich habs nicht verkompliziert....

mfg
remmel

Werbeanzeige