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

MetCiple

Frischling

  • »MetCiple« ist der Autor dieses Themas

Beiträge: 18

Beruf: Schueler

  • Private Nachricht senden

1

24.08.2006, 23:24

Credits - Allegro

Hi.

Bin grad dabei ein wenig mit Allegro zu Programmieren.
Wollte nun einfach mal ein Fenster proggen (320, 200)
und darin die Credits angeben.
Hatte erst die Idee einfach die Tectout_centre(); Funktion in eine
schleife zu packen und dann den Text immer pro durchlauf ein Pixel
nach oben zu verschieben. Doch irgendwie ist der Text dann so schnell das man ihn nicht Lesen kann. Gibt es vieleicht so etwas wie eine Sleep() Funktion oder ähnliches? Oder habt ihr vllt. eine bessere Lösung?

Hier mein Code:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
while (!key[KEY_ESC])
{
   for (int i = 200; i>0; i--) // Damit der Text von unten nach oben läuft
   {
       textout_centre(screen, font, "- Credits -", 160, i, 255);
       ...
       ...
   }
}

...
...
...


Ja nur wie gesagt ist der Text dann so schnell das man ihn nicht mehr Lesen kann.... Für Hilfe wäre ih sehr dankbar.

MetCiple

Frischling

  • »MetCiple« ist der Autor dieses Themas

Beiträge: 18

Beruf: Schueler

  • Private Nachricht senden

2

25.08.2006, 01:29

Okay... Das es nach oben scrollt habe ich schonmal hinbekommen:

Quellcode

1
2
3
4
5
6
7
8
9
10
x=160;
y=200;
while (key[KEY_ESC])
{
    textout_centre(screen, font, "Credits", x, y, 300);
    textout_centre(screen, font, "Name", x, y+20, 255);
    textout_centre(screen, font, "Name", x, y+40, 255);
   
    usw.
}


Nur jetzt gibt es da noch ein Problem:
die ersten schriftzuege gibt er noch normal an... Doch dann kommen immer so Weisse steifen die sich bis zum nächsten Wort hin langziehen... Kann es sein das dies an dem y+[wert] liegt?

Aber wie soll man es denn dann sonst machen...?

Anonymous

unregistriert

3

25.08.2006, 08:09

C-/C++-Quelltext

1
2
3
4
5
6
7
x=160;
y=600;
while (key[KEY_ESC])
{
    y += 5 * dt;
    textout_centre(screen, font, "Credits", x, y, 300);
}

MetCiple

Frischling

  • »MetCiple« ist der Autor dieses Themas

Beiträge: 18

Beruf: Schueler

  • Private Nachricht senden

4

25.08.2006, 08:19

Sorry aber irgendwie versteh ich den Code ausschnitt nicht... Was soll dt sein?

Anonymous

unregistriert

5

25.08.2006, 08:36

Hast du C++ für Spieleprogrammierer? Da kannst du dir mal den Timer
angucken, ist zwar nicht der Beste, aber wie Heiko meinte, völlig ausreichend.
dt ist ein Zeitwert, mit dem deine Bewegungen flüssiger gemacht werden.
Du kannst es auch erstmal ohne * dt versuchen, sollte auch gehen.

Werbeanzeige