Kürzlich konnte ich nicht einschlafen und dachte mir, dass man mit den Zeichenfunktionen von GM auch einen Aktienkurs zeichnen können müsste. Eine halbe Stunde später ist dieses kleine Programm entstanden, vielleicht kann das jemand brauchen.
Neben dem Download möchte ich den Code kurz erklären. Wir brauchen einen Font für die Beschriftung (fnt_beschr), ein Objekt (obj_aktientest) und einen Raum, den ich auf 1024*768 Größe eingestellt habe. Die zwei Relevanten Events im Objekt sind Create und Draw. Im Create generieren wir einen Kurs, den man sonst entweder aus einer Datenbank holt oder für ein Spiel am Start generiert.
Wir legen also erst einen Anfangswert fest, der zwischen 10 und 35 liegt. Dann generieren wir 70 Werte, damit wir genug haben um einen schönen Kurs zu zeichnen. Der neue Kurs weicht immer -5 bis +5 vom vorherigen Kurs ab.
Anschließend geht es schon ans Zeichnen.
Draw
Alles anzeigen
Wir haben hier zwei for-Schleifen. Die erste zeichnet nur das Raster macht die Beschriftung rechts und unten. Das kann man auch mit einem Bild machen, aber wenn man eh schon am zeichnen ist, kann man es gleich so machen und bleibt im Code somit sehr flexibel.
Die zweite for-Schleife zeichnet den eigentlichen Kurs. Dabei werden jeweils die Werte von zwei Kursen genommen und mit einer Linie verbunden. Die Dicke der Linie beträgt in dem Beispiel 3 Pixel.
Wer das Beispiel downloadet, kann auch mit "R" laufend neue Kurse generieren, was recht nett aussieht.
Ich hoffe das hilft ein wenig weiter.
Neben dem Download möchte ich den Code kurz erklären. Wir brauchen einen Font für die Beschriftung (fnt_beschr), ein Objekt (obj_aktientest) und einen Raum, den ich auf 1024*768 Größe eingestellt habe. Die zwei Relevanten Events im Objekt sind Create und Draw. Im Create generieren wir einen Kurs, den man sonst entweder aus einer Datenbank holt oder für ein Spiel am Start generiert.
Wir legen also erst einen Anfangswert fest, der zwischen 10 und 35 liegt. Dann generieren wir 70 Werte, damit wir genug haben um einen schönen Kurs zu zeichnen. Der neue Kurs weicht immer -5 bis +5 vom vorherigen Kurs ab.
Anschließend geht es schon ans Zeichnen.
GML-Quellcode
- // Gitternetz und Beschriftung
- draw_set_color(c_black);
- draw_set_font(fnt_beschr);
- draw_set_valign(fa_middle);
- draw_set_halign(fa_center);
- for (i = 0; i < 11; i++)
- {
- draw_line(30, 30 + i * 340 / 5, 710, 30 + i * 340 / 5); // horizontale Linien
- draw_line(30 + i * 340 / 5, 30, 30 + i * 340 / 5, 710); // vertikale Linien
- draw_text(730, 30 + i * 340 / 5, "" + string(100 - i * 10)); // Skala rechts
- draw_text(30 + i * 68, 735, i); // Wochen
- }
- // Aktienkurs zeichnen
- draw_set_color(c_red);
- for(i = 0; i < 70; i++)
- {
- draw_line_width(30 + i * 340 / 35,
- 710 - kurs[i] * 340 / 50,
- 30 + (i + 1) * 340 / 35,
- 710 - kurs[i + 1] * 340 / 50, 3);
- }
Wir haben hier zwei for-Schleifen. Die erste zeichnet nur das Raster macht die Beschriftung rechts und unten. Das kann man auch mit einem Bild machen, aber wenn man eh schon am zeichnen ist, kann man es gleich so machen und bleibt im Code somit sehr flexibel.
Die zweite for-Schleife zeichnet den eigentlichen Kurs. Dabei werden jeweils die Werte von zwei Kursen genommen und mit einer Linie verbunden. Die Dicke der Linie beträgt in dem Beispiel 3 Pixel.
Wer das Beispiel downloadet, kann auch mit "R" laufend neue Kurse generieren, was recht nett aussieht.
Ich hoffe das hilft ein wenig weiter.
Byte GameMaker Magazin - Online Zeitschrift für Spieleentwickler