- vincent26Membre
- Nombre de messages : 766
Age : 28
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010
[résolu]Sprite et scriptage
Sam 8 Fév 2014 - 22:38
Salut je cherche comment faire laisser une image fixe a un point pendant que le perso bouge a partir du script
je m'explique j'ai créer une viewport de la taille de l'écran son origine et a 0,0 sur l'ecran quand je crée une image dans cette viewport
je définit ses coordonnée dans la base de la viewport
comment faire en sorte que même si je bouge l'image reste fixe pas moyen de trouver une variable qui définisse les coord du héros sur la map au pixel prés ou une qui définisse les coordonnée de la viewport
petite image explicative : (l'origine de la viewport reste dans le coin supérieur gauche)
je m'explique j'ai créer une viewport de la taille de l'écran son origine et a 0,0 sur l'ecran quand je crée une image dans cette viewport
je définit ses coordonnée dans la base de la viewport
comment faire en sorte que même si je bouge l'image reste fixe pas moyen de trouver une variable qui définisse les coord du héros sur la map au pixel prés ou une qui définisse les coordonnée de la viewport
petite image explicative : (l'origine de la viewport reste dans le coin supérieur gauche)
- Spoiler:
- SpytjeAdministrateur
- Nombre de messages : 5935
Localisation : La terre
Distinction : Spiraliste [Korn']
Forestia : Projet du mois juillet 2014
Papy Pulkigrat [Yama']
Date d'inscription : 16/03/2008
Re: [résolu]Sprite et scriptage
Sam 8 Fév 2014 - 23:30
Il existe un petit script qui peut peut être te mettre sur la voie car il permet justement de fixer une image à l'écran même si le personnage bouge.
Si ce n'est pas ce genre d'info que tu cherches désolé
...
Si ce n'est pas ce genre d'info que tu cherches désolé
- Code:
#==============================================================================
# Fix Picture to Map [VXA]
# Version: 1.0a
# Author: modern algebra (rmrk.net)
# Date: February 24, 2012
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# 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. Additionally, the script lets you set the Z value
# to show below characters, or even below the tiles or below the parallax.
#
# This script has no effect in battle and pictures there behave normally.
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Instructions:
#
# Paste this script into its own slot in the Script Editor, above Main but
# below Materials.
#
# To specify that a picture should be fixed to a map and not follow the
# screen, all you need to do is turn an in-game switch on before showing the
# picture. To specify which switch, all you need to do is change the value of
# SWITCH_ID at line 60. Alternatively, you can include the code [Fixed]
# somewhere in the name of the picture.
#
# For the fixed pictures, you also have the option of assigning it to grid
# coordinates instead of pixel coordinates. This means that if you wanted it
# to show up at (3, 5) in the map, you could set it to that directly instead
# of (96, 160). You can turn on this feature using another switch, again one
# which you choose by changing the value of COORDINATES_SWITCH_ID at line 63.
#
# To specify the layer of the tilemap (what shows above it and what shows
# below it), all you need to do is change the value of a variable. Which
# variable is also specifed by you by changing Z_VARIABLE_ID at line 69.
# The value to which that in-game variable is set at the time a picture is
# shown determines where the picture will show up. If the variable is set to
# 0 then it will be in its normal place; if set to -1, it will show below
# the tilemap but above the parallax; if set to -2, it will show below the
# parallax; if set to 1, it will show above all non-star tiles but star tiles
# and characters with normal priority; if set to 2, it will show above
# characters with normal priority but below characters with "Above
# Characters" priority. If set to any other value, the z value of the picture
# will be set to that directly.
#==============================================================================
$imported = {} unless $imported
$imported[:MA_FixPictureToMap] = true
#==============================================================================
# *** MA_FixPicture
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# This module holds some relevant configuration Data
#==============================================================================
module MA_FixPicture
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
# Editable Region
#||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# SWITCH_ID - set this to the ID of the in-game switch that you want to
# use to control whether pictures should be fixed.
SWITCH_ID = 20
# COORDINATES_SWITCH_ID - Set this to the ID of the in-game switch that you
# want to use to control how coordinates are set. If this switch is ON, then
# for fixed pictures, you can just use the grid x and y coordinates (ie: you
# would set (1, 4) instead of (32, 128). If you always want this feature to
# be on when the FPM Switch is on, you can set it to have the same ID.
COORDINATES_SWITCH_ID = 0
# Z_VARIABLE_ID - set this to the ID of the in-game variable that you
# want to use to control the z-value priority of the picture.
Z_VARIABLE_ID = 42
#||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# End Editable Region
#////////////////////////////////////////////////////////////////////////////
class << self
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# * Public Instance Variables
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
attr_accessor :spriteset_vp1
attr_accessor :spriteset_vp2
end
end
#==============================================================================
# ** Game Picture
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Summary of Changes:
# new public instance variables - mafpm_vp_id; mafpm_fixed; mafpm_z
# aliased method - initialize; show; move
#==============================================================================
class Game_Picture
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# * Public Instance Variables
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
attr_accessor :mafpm_vp_id
attr_accessor :mafpm_fixed
attr_accessor :mafpm_z
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# * Object Initialization
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
alias mafpm_iniz_2fg6 initialize
def initialize(*args, &block)
@mafpm_fixed = false
@mafpm_vp_id = 2
mafpm_iniz_2fg6(*args, &block) # Call Original Method
@mafpm_z = self.number
end
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# * Show Picture
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
alias mafpm_showpic_3jb7 show
def show(name, *args, &block)
@mafpm_fixed = (MA_FixPicture::SWITCH_ID == true ||
$game_switches[MA_FixPicture::SWITCH_ID] || !name[/\[FIXED\]/i].nil?)
z_var = $game_variables[MA_FixPicture::Z_VARIABLE_ID]
# If 0 or less than 300, then it should belong to the viewport1
@mafpm_vp_id = (z_var != 0 && z_var < 300) ? 1 : 2
# Set Z shortcuts
@mafpm_z = case z_var
when -1 then -50 # Below tilemap but above parallax
when -2 then -150 # Below parallax
when 0 then self.number # Normal position
when 1 then 0 # Above tilemap but below normal characters
when 2 then 199 # Above normal characters but below Above Characters
else
@mafpm_z = z_var < 300 ? z_var : z_var - 300 # Directly set to value
end
mafpm_showpic_3jb7(name, *args, &block) # Call Original Method
if @mafpm_fixed && (MA_FixPicture::COORDINATES_SWITCH_ID == true || $game_switches[MA_FixPicture::COORDINATES_SWITCH_ID])
@x *= 32
@y *= 32
end
end
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# * Move Picture
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
alias mafpm_movepctr_2js1 move
def move(*args, &block)
mafpm_movepctr_2js1(*args, &block)
if @mafpm_fixed && (MA_FixPicture::COORDINATES_SWITCH_ID == true || $game_switches[MA_FixPicture::COORDINATES_SWITCH_ID])
@target_x *= 32
@target_y *= 32
end
end
end
#==============================================================================
# ** Sprite Picture
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Summary of Changes:
# aliased methods - update
#==============================================================================
class Sprite_Picture
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# * Frame Update
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
alias mafpm_updt_5fw1 update
def update(*args, &block)
mafpm_updt_5fw1(*args, &block) # Call original method
# If picture is fixed to map
if SceneManager.scene_is?(Scene_Map)
# Scroll the picture appropriately
if @picture.mafpm_fixed
self.x = @picture.x - ($game_map.display_x * 32)
self.y = @picture.y - ($game_map.display_y * 32)
end
self.z = @picture.mafpm_z # Update Z to the correct Z
end
# If the viewport has changed
if @mafpm_vp_id != @picture.mafpm_vp_id && MA_FixPicture.send(:"spriteset_vp#{@picture.mafpm_vp_id}")
@mafpm_vp_id = @picture.mafpm_vp_id
# Change viewport
self.viewport = MA_FixPicture.send(:"spriteset_vp#{@mafpm_vp_id}")
end
end
end
#==============================================================================
# ** Spriteset Map
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Summary of Changes:
# aliased methods - create_viewports; dispose_viewports
#==============================================================================
class Spriteset_Map
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# * Create Viewports
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
alias mafpm_creatviewpor_3dk8 create_viewports
def create_viewports(*args, &block)
mafpm_creatviewpor_3dk8(*args, &block) # Call original method
# Set the viewports to be globally accessible
MA_FixPicture.spriteset_vp1 = @viewport1
MA_FixPicture.spriteset_vp2 = @viewport2
end
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# * Dispose Viewports
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
alias mafpm_disposevps_2nr5 dispose_viewports
def dispose_viewports(*args, &block)
# Nullify the variables in MA_FixPicture
MA_FixPicture.spriteset_vp1 = nil
MA_FixPicture.spriteset_vp2 = nil
mafpm_disposevps_2nr5(*args, &block) # Call original method
end
end
...
- vincent26Membre
- Nombre de messages : 766
Age : 28
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010
Re: [résolu]Sprite et scriptage
Dim 9 Fév 2014 - 0:12
je vais regarder cela merci déjà ^^
EDIT : Cool c'est bon il y a ce que je cherche merci
EDIT : Cool c'est bon il y a ce que je cherche merci
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum