Aktienkurs darstellen

    • Studio

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Aktienkurs darstellen

      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.

      Create

      GML-Quellcode

      1. // Zufälliger Kurs
      2. kurs[0] = random_range(10, 35); // Startwert der Aktie
      3. // 70 Werte werden erstellt.
      4. for(i = 1; i < 71; i++)
      5. {
      6. kurs[i] = kurs[i-1] + random_range(-5, 5);
      7. if (kurs[i] < 1)
      8. {
      9. kurs[i] = 1; // Es gibt keine Werte kleiner als 1
      10. }
      11. }
      Alles anzeigen



      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

      GML-Quellcode

      1. // Gitternetz und Beschriftung
      2. draw_set_color(c_black);
      3. draw_set_font(fnt_beschr);
      4. draw_set_valign(fa_middle);
      5. draw_set_halign(fa_center);
      6. for (i = 0; i < 11; i++)
      7. {
      8. draw_line(30, 30 + i * 340 / 5, 710, 30 + i * 340 / 5); // horizontale Linien
      9. draw_line(30 + i * 340 / 5, 30, 30 + i * 340 / 5, 710); // vertikale Linien
      10. draw_text(730, 30 + i * 340 / 5, "" + string(100 - i * 10)); // Skala rechts
      11. draw_text(30 + i * 68, 735, i); // Wochen
      12. }
      13. // Aktienkurs zeichnen
      14. draw_set_color(c_red);
      15. for(i = 0; i < 70; i++)
      16. {
      17. draw_line_width(30 + i * 340 / 35,
      18. 710 - kurs[i] * 340 / 50,
      19. 30 + (i + 1) * 340 / 35,
      20. 710 - kurs[i + 1] * 340 / 50, 3);
      21. }
      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.
      Bilder
      • Aktienkurs.jpg

        83,81 kB, 1.024×768, 367 mal angesehen
      Dateien
      • Aktienkurs.zip

        (125,77 kB, 338 mal heruntergeladen, zuletzt: )
      Byte GameMaker Magazin - Online Zeitschrift für Spieleentwickler