Ergebnis 1 bis 5 von 5

Thema: kleines script-problem

  1. #1

    Doktor von Stein Gast

    kleines script-problem

    ich versuche grade ein spiel zu proggen, indem es darum geht, möglichst lange durchzuhalten. es wird also immer eine sekunde dazugerechnet und das soll dann auf dem bildschirm ausgegeben werden. das ganze sieht bei mir ungefähr so aus:

    so, was hab ich falsch gemacht? er zeigt keinen fehler an aber auch nicht die variable.

  2. #2
    Verwendest du die Standardskripte, oder willst du komplett mit eigenen Scripten arbeiten? Bei ersterem müsstest du dein Script z.B. in Scene_Map#main initialisieren und in Scene_Map#update updaten. Sonst wird nichts angezeigt. Außerdem solltest du überprüfen ob dein Timer-Sprite nicht von anderen Sprites verdeckt wird (ggf. z-Koordinate erhöhen, besser noch in den korrekten Viewport packen).
    Bei letzterem brauchst du eine Hauptschleife der Form
    Code:
    bla = Bla.new
    loop do
      # nur jede Sekunde updaten
      if Graphics.frame_count % Graphics.frame_rate then
        bla.update
      end
      Graphics.update
    end
    Ansonsten noch ein paar Bemerkungen zum Code:

    - Deine draw_text Methode löscht das vorherige Bitmap nicht. Die Zahlen werden also einfach übereinander geschrieben -> sieht etwas komisch aus ^^ Besser vorher fill_rect mit transparenter Farbe ausführen um die vorherige Schrift zu löschen
    - dein Bitmap ist ziemlich groß für einen Timer oO Wenn du nicht weißt wie viel Platz der Timer braucht, erzeuge eine 1*1 Dummy-Bitmap und berechne den Platzbedarf per text_size Methode. Ein 640*480 Pixel großes Bitmap frisst unnötig Ressourcen. Nicht schlimm, aber halt unnötig ^^
    - Ausgabe (Grafik, Sound, usw.) und Spielmechanik sollten immer voneinander getrennt sein. Schreib eine Klasse Sprite_Timer < Sprite die den Timer anzeigt und eine Klasse Game_Timer, die den Countdown runterzählt. Vermisch nicht beides in ein und derselben Klasse. Wenn du Standardskripte verwendest, solltest du den Game_Timer als Attribut eines bestehenden $game_ Objektes machen. z.B. $game_temp.countdown o.ä. Dein Sprite_Timer wird dann z.B. Attribut von Spriteset_Map

  3. #3

    Doktor von Stein Gast
    ich hab die standartskripte nicht gelöscht, aber ich lasse das script direkt im main aufrufen, dewegten ist das mit dem map doof. Die z-koordinate ist nicht schuld, hab ich schon überprüft. deine meisten bemerkungen zum code versteh ich nicht ganz. und das mit der größe ... es soll ja ersteinmal funzen.

    tja, ich bin immer noch blutiger anfänger

    mfg Salamie

  4. #4
    Dann zeig mal dein Main-Skript. Es sollte im einfachsten Fall so aussehen:
    Code:
    bla = Bla.new
    bla.main
    loop do
      bla.update
      Graphics.update
    end

  5. #5

    Doktor von Stein Gast
    hat sich erledigt

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •