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

Ich00nix

Frischling

  • »Ich00nix« ist der Autor dieses Themas

Beiträge: 63

Wohnort: Kaiserslautern

Beruf: Schüler

  • Private Nachricht senden

1

10.10.2007, 16:25

Wie progt man einen Abspann?

ich bin dabei ein ganz simples spiel zu programmieren und dabe hätte ich gerne einen Abspann. Den stelle ich mir so vor, dass ich eine Textur als hintergrund habe (ich arbeite nur n 2D) und davor der Text nach oben läuft. Das funktioniert auch am Anfang alles wunderbar allerdings fängt nach einer gewissen zeit immer die Schrift an nichtmehr flüssig zu laufen sondern zu stottern und bewegt sich immer langsamer! Was mache ich falsch?

Hier der ausschnitt Quellcode am dem es (meiner Meinung nach) liegt:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
InitFonts();
    g_pIntro->Begin();
    g_pIntro->DrawText(vPosition5,
        "Music Assist 1.0",
        1,
        -1,
        tbColor(0.0f, 1.0f, 0.0f),
        tbColor(0.0f, 1.0f, 0.0f),
        tbVector2(1.0f, 1.0f),
        1.0f,
        -10.0f,
        0.0f,
        50.0f,
        0.0f);
    g_pIntro->End();
    
    
    vPosition5.y -= 1;

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

2

10.10.2007, 17:49

schonmal die FPS gemessen?
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.

Dofter

Treue Seele

Beiträge: 159

Wohnort: im wunderbaren EBERMANNSTADT

Beruf: Schüler^^

  • Private Nachricht senden

3

10.10.2007, 18:00

ja liegt denk ich auch an den FPS da deine scrollgeschwindigkeit ja nich von der framrate abhängt:
vPosition5.y -= 1;
du ziehst pro frame einfach nur eins ab
"Wo kämen wir hin, wenn alle sagten, wo kämen wir hin, und keiner ginge,
um zu sehen, wohin wir kämen, wenn wir gingen"

Ich00nix

Frischling

  • »Ich00nix« ist der Autor dieses Themas

Beiträge: 63

Wohnort: Kaiserslautern

Beruf: Schüler

  • Private Nachricht senden

4

10.10.2007, 18:06

ja gut mag sein aber warum nimmt die so drastisch ab? is da ein Fehler, dass er immer mehr schaffen muss oder warum sinkt die so?

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

5

10.10.2007, 18:17

vielleicht falsches Texturformat oder falsche Einstellungen. Kann dir glaube ich keiner ohne genauere Infos sagen.
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.

Ich00nix

Frischling

  • »Ich00nix« ist der Autor dieses Themas

Beiträge: 63

Wohnort: Kaiserslautern

Beruf: Schüler

  • Private Nachricht senden

6

10.10.2007, 18:29

ok also ich hab nochmal gemessen, ihr habt recht gehabt die FPS nimmt drastisch ab sodass sie nur noch bei 0-10 FPS ist obwohl sie das ganze Programm über bei 50 lag! Ich habe die cpp datei jetzt hoch geladen, ihr könnt sie euch mal angucken:
http://rapidshare.com/files/61607384/vmb.cpp
ich kann mir denken, dass in diesem code sehr viele form fehler sind und das vieles nur kopiert ich freue mich deshalb über jeden Verbesserungsvorschlag!

Dofter

Treue Seele

Beiträge: 159

Wohnort: im wunderbaren EBERMANNSTADT

Beruf: Schüler^^

  • Private Nachricht senden

7

10.10.2007, 18:36

zur Form sag ich mal nix aber:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
tbResult MoveExit() {
    float* pfTasten;
    pfTasten = (float*)(tbMemAlloc(tbDirectInput::Instance().GetNumButtons() * sizeof(float)));
    tbDirectInput::Instance().GetState(pfTasten);
    if(pfTasten[TB_KEY_RETURN]) PostQuitMessage(0);
        // Den Zeitzähler aktualisieren

    g_fTime += fNumSecsPassed;

    return TB_OK;
}

du reservierst bei jedem durchlauf Speicher für alle knöpfe und gibts ihn nicht wieder frei.
"Wo kämen wir hin, wenn alle sagten, wo kämen wir hin, und keiner ginge,
um zu sehen, wohin wir kämen, wenn wir gingen"

Dofter

Treue Seele

Beiträge: 159

Wohnort: im wunderbaren EBERMANNSTADT

Beruf: Schüler^^

  • Private Nachricht senden

8

10.10.2007, 18:51

Ok. doch ein bisschen was wichtiges:
-Du reservierst Speicher für Schriftarten und gibst ihm am Schluss nicht wieder frei.
-wofür brauchst du diese vektoren?

C-/C++-Quelltext

1
2
3
4
5
6
7
8
tbVector2 vPosition2;
tbVector2 vPosition3;
tbVector2 vPosition4;
tbVector2 vPosition5;
tbVector2 vPosition6;
tbVector2 vPosition7;
tbVector2 vPosition8;
tbVector2 vPosition9;

wenn du sie brauchst, bennen sie aussagekräftig d.h. z.B. vTextPosition, ...

Und in der Forensuche hilf vielleicht auch eine suche nach z.B. Codestil, ...
"Wo kämen wir hin, wenn alle sagten, wo kämen wir hin, und keiner ginge,
um zu sehen, wohin wir kämen, wenn wir gingen"

Ich00nix

Frischling

  • »Ich00nix« ist der Autor dieses Themas

Beiträge: 63

Wohnort: Kaiserslautern

Beruf: Schüler

  • Private Nachricht senden

9

10.10.2007, 19:18

also die vektoren brauche ich für die die Positionen der Schriften aber du hast recht mit dem freigeben von speicherplatz könnte ich noch viel besser umgehen

Dofter

Treue Seele

Beiträge: 159

Wohnort: im wunderbaren EBERMANNSTADT

Beruf: Schüler^^

  • Private Nachricht senden

10

10.10.2007, 19:27

am schlausten ist, wenn man den Speicher für die knöpfe in Init reserviert und in Ixit wieder freigibt, du musst ihn nicht jedesmal neu reservieren.
"Wo kämen wir hin, wenn alle sagten, wo kämen wir hin, und keiner ginge,
um zu sehen, wohin wir kämen, wenn wir gingen"

Werbeanzeige