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

BlackSnake

Community-Fossil

Beiträge: 1 549

Beruf: Student

  • Private Nachricht senden

21

06.11.2007, 20:26

die device musst du erst beenden, richtig. wie man das mit der tribase am besten löst weiß ich nicht. wenn es gar nicht geht, bastel dir selbst ne funktion rein.

wegen fertiger config:
ich kann sie sicher hier reinstellen. allerdings ist das ganze system sehr komplex und dazu kommt das es directx10 ist. folglich ist es ein wenig anders aufgebaut.

PS: ich denke du wirst dir selber ne funktion in die tb engine aunbauen müssen. es gibt ja mehrere funktionen, mit denen du auf die device zu greifen kannst. aber das sin höchstwahrscheinich solche funktione wie:

C-/C++-Quelltext

1
PDIRECT3D9DEVICE GetDevice()const


erstmal verhindert const, dass du die device verändert kannst und zweitens gibt sie dir die device ja zurück, aber wenn du die beendet hast, wird da nur null kommen ;)[/b]

Task-Manager

Alter Hase

  • »Task-Manager« ist der Autor dieses Themas

Beiträge: 1 087

Wohnort: am PC

Beruf: Student

  • Private Nachricht senden

22

06.11.2007, 21:46

ok^^
falls ichs i-wo vergessen hab:

mfg
Task-Manager

Rechtschreibfehler sind mein Eigentum und gewollt!

BlackSnake

Community-Fossil

Beiträge: 1 549

Beruf: Student

  • Private Nachricht senden

23

06.11.2007, 22:16

sollte ja kein problem sein, ne funktion dazu zufügen, denke ich mal ;)

Task-Manager

Alter Hase

  • »Task-Manager« ist der Autor dieses Themas

Beiträge: 1 087

Wohnort: am PC

Beruf: Student

  • Private Nachricht senden

24

07.11.2007, 15:43

puh i-iwe verliere ich den Durchblick...

ich glaube ich mache es doch auf meine alte art...
dort wo ich die 7 reingestetzt hatte, anstatt der 0, setzt ich nun einfach einen integer wert rein, der normal auf 7 ist, wenn nun die auflösung gewählt wurde ruf ich tb exit auf und fahre alles runter, dann wird der integer wert von der 7 auf einene andere beliebige Zahl geändert und das Spiel neugestartet und direkt ins Haupt menü geleitet...

nur taucht jetzt wieder ein prob auf:

angenommen der integer ist int Wahl =7;
dann wird Wahl = Breakanoid_wahl; gesetzt (Breakanoid Wahl ist ja normal als 7 definiert, kann aber z.B. auf 2 geändert werden...)
und zum schluss wird ja der wert übernommen...
SendDlgItemMessage(hDlg, TB_IDC_D3DC_VIDEO_MODES, CB_SETCURSEL, Wahl, 0);

Tribase kann ja nicht auf die Variablen von Breakanoid (also Breakanoid_Wahl) zugreifen, da er sie ja nicht kennt...

Wie löse ich dieses Prob? kann ich TriBase i-wie sagen, dass diese Var später exsistiert?

mfg
BRWeiden
falls ichs i-wo vergessen hab:

mfg
Task-Manager

Rechtschreibfehler sind mein Eigentum und gewollt!

BlackSnake

Community-Fossil

Beiträge: 1 549

Beruf: Student

  • Private Nachricht senden

25

07.11.2007, 18:40

warum verlierst du den durchblick?
so schwer ist es doch nicht eine weitere funktion der tribase zuzufügen.
statt init, die ja logischer weise die tribase initialisiert, rufts du, bei mir heißt die ReInitRenderer, auf.

Task-Manager

Alter Hase

  • »Task-Manager« ist der Autor dieses Themas

Beiträge: 1 087

Wohnort: am PC

Beruf: Student

  • Private Nachricht senden

26

07.11.2007, 19:30

ja...
einfach nur ne funktion hinzufügen...
ich verlier eben den Überblick, da ich nicht mal weiß wie viele Funktionen überhaupt vorhanden sind...

z.B. wusste ich nicht, dass es bei PDIRECT3D9DEVICE überhaupt die funktion GetDevice() gibt...
und zu ReInitRender... das sagt mir auch nichts... ich kenn nur init, load, unload, move, und exit...

gibts i-wo ne Liste, wo man alle bereits vorhandenen funktionen sehen kann?

zu dem ReInit: Soll ich nicht einfach Direct3D komplett runterfahren und wieder hochfahren?
z.B. hier mit?

C-/C++-Quelltext

1
2
3
4
5
6
// Eventuell Direct3D herunterfahren

    if(tbDirect3D::IsInitialized())
    {
        TB_WARNING("Direct3D wurde nicht heruntergefahren! Wird automatisch erledigt...");
        tbDirect3D::Instance().Exit();
    }


dann diesen konfigurations-teil durchlaufen lassen?

und dann wieder mit tbInit() hochfahren?

mfg
BRWeiden

BTW: Ich bastle zu erstenmal mit TriBase rum. ich habe davor nur die TriBase für Breakanoid benutzt, nur Breakanoid hab ich einfach nur immer so lange ausprobiert, bis es geklappt hat. mitlerweile verstehe ich alles von Breakanoid.

zu dem ist mir immer noch nicht klar: Wozu braucht TB die Base classes?
falls ichs i-wo vergessen hab:

mfg
Task-Manager

Rechtschreibfehler sind mein Eigentum und gewollt!

BlackSnake

Community-Fossil

Beiträge: 1 549

Beruf: Student

  • Private Nachricht senden

27

07.11.2007, 19:35

also zu dem getdevice. sowas hat die tribase engine, nicht dx selbst^^.
und zu dem reinitrenderer. ich sagte ja, dass die funktion bei mir so heißt, on meiner engine. du müsstest jetzt das tribase projekt öffnen und dir in die hauptklasse ne eigene funktion neben init, exit etc.. schreiben.

Task-Manager

Alter Hase

  • »Task-Manager« ist der Autor dieses Themas

Beiträge: 1 087

Wohnort: am PC

Beruf: Student

  • Private Nachricht senden

28

07.11.2007, 19:45

aso...
jetzt hab ich's gecheckt^^ :D

sowas krieg ich ja natürlich hin

nur dan bleibt ja immer noch die Frage: Was muss in die Funktion rein?
also ich liste mal auf:
1.) ich muss i-wie die device runterfahren (da bin ich mir nicht so sicher wie mit tbDirect3D::Instance().Exit(); ?)
2.) neue device erstellen wie das geht war ja oben beschrieben...

dann muss ich wahrscheinlich diese Funktion nur von BReakanoid durchlaufen lassen...

PS: Finde es echt nett von dir das du mir soo hilfst und soo viel geduld hast^^ :D

mfg
BRWeiden
falls ichs i-wo vergessen hab:

mfg
Task-Manager

Rechtschreibfehler sind mein Eigentum und gewollt!

BlackSnake

Community-Fossil

Beiträge: 1 549

Beruf: Student

  • Private Nachricht senden

29

07.11.2007, 19:57

also,
die schritte sind im groben folgende:
:arrow: eine neue funktion in der tribase engine selbst erstellen. und zwar in der klasse tbDirect3D (in die erstellten funktion greifst du direkt auf die device zu. nicht mit irgendeiner anderen funktion der engine.)
:arrow: du beendest die device mit deren methode
:arrow: du beendest das fenster (ob nötig weiß ich nicht. ich habe es gemacht)
:arrow: jetzt erstellst du ein neues fenster mit den neuen größendaten
:arrow: eine neue device ebenfalls. die daten könntest du per parameter übergeben, die aus dem spiel heraus an die funktion übergeben werden
:arrow: fertig.

:!: die neue device muss die jenige sein, die in der tbDirect3D-Class vorhanden ist, ansonsten kann die tribase engine ja nicht mehr "arbeiten" :!:

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

30

07.11.2007, 20:41

-> Man muss alle Daten/Buffer, die was mit der Device zu tun haben, neu laden(Ganz wichtig)
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Werbeanzeige