Ergebnis 1 bis 20 von 71

Thema: [VX-Ace] Script zeigt Bild nicht an

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #27
    Ich esse jetzt gleich erst einmal und bin noch was unterwegs, schaue mir das aber später noch an und editiere es hier rein. Erst einmal zur ersten Zeile vorab:

    Beim Aufruf einer Methode, übergibst du nicht die Variable an sich, sondern den Wert, den sie besitzt. Beispiel:
    Code:
    def methode_a()
      methode_b(5)   # gibt aus: 5
      methode_b(iZahl) #gibt aus: nil, da iZahl in methode_a gar nicht vorhanden ist
      methode_b(rand(10)) #gibt eine zufällige Zahl zwischen 0 und 10 aus
     varzahl = 1
     methode_b(varzahl) #gibt 1 aus
    end
    
    def methode_b(iZahl)
      p(iZahl)
    end
    Das ist bei Methoden mit Rückgabenwerte auch so. Es ist "egal", wie die Variablen in der aufrufenden Methode heißen.

    Edit:
    Was mir direkt aufgefallen ist,du hast anstelle einer Init-Methode deine ganzen Befehle in die navigae Methode gehauen. D.h, immer wenn die Methode aufgerufen wird, erstellst du neue Game_Memory, Memory_Picture_Changer Objekte. Das sieht falsch aus. Pack das mal in eine Init-Methode. Ich kann es aber wie gesagt später noch korrigieren, wenn ich die Zeit dafür habe.

    Edit2:
    So, gerade fertig gegessen. So sollte deine Navigate Klasse dann mit den Korrekturen aussehen (warum du plötzlich in allen Methoden Objekte der "Memory_Klasse" anlegst, habe ich übrigens nicht verstanden):
    Code:
    # Hier findet die Navigation statt.
    class Memory_Game_Navigate
      
      def initialize
        @cursor = Sprite.new
        #Kommentar: Die meisten Sprites liegen im Z-Wert zwischen 0 und 300. 
        #Mit 500 solltest du auf jeden Fall auf der obersten Ebene sein, wodurch 
        #dein Cursor über allem steht.
        @cursor.z = 500 
        @cursor.bitmap = Cache.picture("Stern_1.PNG")
        @x_nav = 0
        @y_nav = 0
        @id = 0
        @pic_ID1 = -1
        @pic_ID2 = -2
        @win = 0
        
        @pic_changer = Memory_Picture_Changer.new
      end
      
      
      def navigate    
        # f_wrapper enthält die Deckblätter
        # f_names enthält die Bilder
        # s_names enthält die Sounds
        f_wrapper, f_names, s_names = $game_system.memory.get_arrays()
        
        if Input.trigger?(:DOWN)
          if @y_nav == 312
            #Hier wird der Ton für den 2. Modus abgespielt.
            move_error()
            #Wert wird nicht vergrößert.
          elsif
            @y_nav = @y_nav + 104
            @id = @id + 4
            move_cursor()
          end
        end
        
        if Input.trigger?(:LEFT)
          if @x_nav == 0
            move_error()
            #Wert wird nich verkleinert.
          elsif
            @x_nav = @x_nav - 136
            @id = @id - 1
            move_cursor()
          end
        end
        
        if Input.trigger?(:UP)
          if @y_nav == 0
            #Hier wird der Ton für den 2. Modus abgespielt.
            move_error()
            #Wert wird nicht verkleinert.
          elsif
            @y_nav = @y_nav - 104
            @id = @id - 4
            move_cursor()
          end
        end
        
        if Input.trigger?(:RIGHT)
          if @x_nav == 408
            move_error()
            #Wert wird nich vergrößert.
          elsif
            @x_nav = @x_nav + 136
            @id = @id + 1
            move_cursor()
          end
        end
        
        if Input.trigger?(:C)
          a = f_names[@id]
          b = f_wrapper[@id]
          #a = @figure_names.select[@id] 
          if b == "Card_000.png"
            if @pic_ID1 == -1
              $game_variables[10] = $game_variables[10] + 1
              @pic_ID1 = @id
              @pic_ID1,@pic_ID2 = @pic_changer.change_card(@pic_ID1,@pic_ID2)
              #change_card()
            elsif @pic_ID2 == -2
              $game_variables[10] = $game_variables[10] + 1
              @pic_ID2 = @id
              @pic_ID1,@pic_ID2 = @pic_changer.change_card(@pic_ID1,@pic_ID2)
              #change_card()
            end
          else
            #Falls der Spieler blind ist, wird hier ein Signal abgespielt
            #sonst wird in beiden Fällen die Variable für die Züge
            #hochgezählt.
            if $game_switches[2] == true
              Audio.se_play("Buzzer1", 80, 100) 
            end
            $game_variables[10] = $game_variables[10] + 1
          end
          
        end
        return @pic_ID1, @pic_ID2
      end
      
      #Hier findet die Bewegung des Mauszeigers statt.
      def move_cursor
        @cursor.x = @x_nav
        @cursor.y = @y_nav
      end
      
      #hier wird der Ton abegespielt wenn sich der Spieler nicht mehr bewegen kann.
      def move_error
        if $game_switches[2] == true
          Audio.se_play("Earth6", 80, 100) 
        end
      end
      
    end

    Geändert von Linkey (02.07.2015 um 17:15 Uhr)

Stichworte

Berechtigungen

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