Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : [RMVX] Picture Problem



Mongkey
28.11.2010, 21:13
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.
http://www6.pic-upload.de/28.11.10/6pjupvx1t8bh.png

Was kann ich tun?

Shisu
28.11.2010, 22:00
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.


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
#===============================================================================

Mongkey
28.11.2010, 22:19
Danke, ich hab ebenfals etwas gefunden.

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


#==============================================================================
# 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