Ergebnis 1 bis 3 von 3

Thema: [RMVX] Picture Problem

  1. #1

    [RMVX] Picture Problem

    Hi, ich hab ein ziemlich komisches Problem mit dem VX.

    Wenn ich ein Bild anzeigen lasse, dann bewegt es sich mit dem Bildschirm mit.
    Geht der Held nach oben, dann folgt ihm das Bild.
    Auch wenn ich das Bild mit Koordinaten fixiere, bewegt sich das Bild mit.

    Den "Move with Map" Befehl, den man beim 2000'er an und aus schalten konnte gibt es im VX nicht.


    Was kann ich tun?

    Geändert von Mongkey (28.11.2010 um 21:36 Uhr)

  2. #2
    Ich habe vor einiger Zeit mal ein Script was Pictures fixiert von KD für den VX kompatibel gemacht.
    Nach seiner Erlaubnis habe ich nie gefragt.

    Wie es funktioniert steht im Kopf.

    Code:
    class Game_Picture
    #  Credits: KD
    
    # : um ein Bild zu fixieren verwendet folgenden Code in einem Callscript =>
    #   lock_scroll(PICTURE_ID)
    #
    # : um es wieder Rückgangig zu machen =>
    #   unlock_scroll(PICTURE_ID)
    
    
     #:::::::::::::::::: 
     LOCK = true
     UNLOCK = false
     #::::::::::::::::::
     
     #==============================================================================
     #  IGNORIEREN
     #==============================================================================
     def loki=(value)
       @loki = value
     end
     # Ignorieren
     def x
       if @loki then (@x - $game_map.display_x) / 8 else @x end
       end
     # Ignorieren  
     def y
       if @loki then (@y - $game_map.display_y) / 8 else @y end
       end
     # Ignorieren
     alias pic_show show
     def show(*picture_lol)
       @move_with = UNLOCK
       pic_show(*picture_lol)
     end
    end
     # Ignorieren
     class Game_Interpreter
      def lock_scroll(id, v=Game_Picture::LOCK)
       screen.pictures[id].loki = v if screen.pictures[id]
       true
     end
     # Ignorieren
     def unlock_scroll(id)
       lock_scroll(id,Game_Picture::UNLOCK)
     end
    end
    #===============================================================================
    # END
    #===============================================================================

  3. #3
    Danke, ich hab ebenfals etwas gefunden.

    Fix Pictures to Map von modern algebra
    http://rmrk.net/index.php/topic,39052.0.html

    Code:
    #==============================================================================
    #    Fix Pictures to Map
    #    Version: 1.1
    #    Author: modern algebra (rmrk.net)
    #    Date: August 15, 2010
    #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    #  Description:
    #
    #    This allows you to set the position of a picture by the X and Y position
    #   of the map, rather than the screen, so that the picture won't move with you
    #   when the screen scrolls. It also has a couple other features, such as
    #   allowing you to set the Z value to show below characters, or below the
    #   tiles to add another parallax (kind of).
    #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    #  Instructions:
    #
    #    Paste this script into its own slot above Main and below Materials in the
    #   Script Editor (F11).
    #
    #    This switch is run by one switch and one variable that you specify.
    #   They are:
    #      FPM_SWITCH - This switch toggles the fix pictures feature. When this
    #          switch is ON and a picture is shown, then that picture will be fixed
    #          to the map coordinates you specify, not to the screen. This means
    #          that if the screen scrolls, the picture will not scroll with it. It
    #          is useful if you want to use a picture as an additional map layer,
    #          or as a parallax. Note that this still sets it to pixels, so if you
    #          want a picture to show up at the map coordinates 1, 2, you would set
    #          it to 32, 64. To specify which switch should be used to control this
    #          feature, go to line 56 and change the value to the ID of the switch
    #          you want to use to control this feature.
    #      FPM_Z_VARIABLE - This allows you to set the priority of the picture.
    #          When showing a picture, the value of this ariable will determine the
    #          z value of the picture. When the variable with this ID is set to 0,
    #          the pictures are shown at their normal z value. Setting this
    #          variable to 1 will place it below characters but above non-star
    #          tiles. Setting this variable to 2 will draw the picture above all
    #          tiles and characters except for "Above Characters" Events. Setting
    #          it to 3 will put it below all tiles and characters but above the
    #          parallax. Setting it to 4 will put it below everything, including
    #          the parallax. Setting it to any other value directly sets the z of
    #          that sprite to that value. To specify which variable controls this
    #          feature, go to line 58 and set FPM_Z_VARIABLE to the ID of the
    #          variable you want to use.
    #==============================================================================
    FPM_SWITCH = 1         # See line 22
    FPM_Z_VARIABLE = 1     # See line 32
    #==============================================================================
    # ** Game_Picture
    #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    #  Summary of Changes:
    #    attr_reader - map_locked
    #    aliased method - initialize, show
    #==============================================================================
    
    class Game_Picture
      #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      # * Public Instance Variables
      #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      attr_reader :map_locked
      attr_reader :fpm_viewport
      attr_reader :fpm_z
      #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      # * Object Initialization
      #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      alias malg_fixpicmp_initz_6yh3 initialize
      def initialize (*args)
        @map_locked = false
        @fpm_viewport = false
        malg_fixpicmp_initz_6yh3 (*args) # Run Original Method
        @fpm_z = 100 + self.number
      end
      #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      # * Show Picture
      #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      alias ma_fxpm_showpic_2dx4 show
      def show (*args)
        ma_fxpm_showpic_2dx4 (*args) # Run Original Method
        @map_locked = $game_switches[FPM_SWITCH]
        @fpm_viewport = ($game_variables[FPM_Z_VARIABLE] != 0) && ($game_variables[FPM_Z_VARIABLE] <= 300)
        if @fpm_viewport
          @fpm_z = case $game_variables[FPM_Z_VARIABLE]
          when 1 then 0
          when 2 then 200
          when 3 then -50
          when 4 then -150
          else
            @fpm_z = $game_variables[FPM_Z_VARIABLE]
          end
        else
          @fpm_z = 100 + self.number
        end
      end
    end
    
    #==============================================================================
    # ** Sprite_Picture
    #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    #  Summary of Changes:
    #    new attr_accessor - fpm_vp1, fpm_vp2
    #    aliased method - update
    #==============================================================================
    
    class Sprite_Picture
      #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      # * Public Instance Variables
      #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      attr_accessor :fpm_vp1
      attr_accessor :fpm_vp2
      #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      # * Frame Update
      #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      alias ma_fpm_updt_oxoy_5tb3 update
      def update (*args)
        pic_name = @picture_name
        ma_fpm_updt_oxoy_5tb3 (*args) # Run Original Method
        if pic_name != @picture_name
          self.viewport = @picture.fpm_viewport ? @fpm_vp1 : @fpm_vp2
          @picture_name = pic_name if self.viewport.nil?
          self.ox, self.oy = 0, 0 # Reset OX and OY for new picture
        end
        if @picture.map_locked
          self.ox, self.oy = $game_map.display_x / 8, $game_map.display_y / 8
        end
        self.z = @picture.fpm_z
      end
    end
    
    #==============================================================================
    # ** Spriteset_Map
    #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    #  Summary of Changes:
    #    aliased method - create_pictures
    #==============================================================================
    
    class Spriteset_Map
      #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      # * Create Pictures
      #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      alias malg_fxpix_crtpi_5oq1 create_pictures
      def create_pictures (*args)
        malg_fxpix_crtpi_5oq1 (*args) # Run Original Method
        @picture_sprites.each { |sprite|
          sprite.fpm_vp1 = @viewport1
          sprite.fpm_vp2 = @viewport2
        }
      end
    end

    Geändert von Mongkey (23.06.2011 um 18:04 Uhr)

Berechtigungen

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