Partagez
Aller en bas
Skillo
Skillo
Staffeux retraité

Nombre de messages : 526
Age : 30
Localisation : Rennes
Distinction : J'aime ce gars :P
(by Coco')
Scripteur apprenti, futur Berka !
(par Tretian)
Membre anonyme de la communauté, caché derrière son PC
(???)
super prof de script
[Dudu']
Résident permanent de la Chat Box
[Autoproclamé]
Adepte du XDDD [Yak' Very Happy]
Fanatique hystérique de Raymond le français [Un connu]
Date d'inscription : 19/01/2008

[VXAce] SBS Homemade Empty [VXAce] SBS Homemade

le Dim 12 Jan 2014 - 17:33
Auteur : Skillo

Version du script : V 0.2 (ça avance ^^)

Principe du script : C'est un script de SBS que j'ai bidouillé en quelques heures.
Le principe pour l'instant est de faire un SBS maison, en gardant le moteur de combat de VX Ace.
Attention ceci est un début, je vais étoffer par la suite.

Contenu :

  • Possibilité de choisir une image comme battler pour chaque perso
  • Placement automatique des perso et des enemy sur la surface de combat
  • Configuration du SBS dans un fichier de configuration en JSON
  • Possibilité de Configurer le positionnement et le zoom des ennemies et des persos en fonction du nombre
  • Possibilité d'utiliser des characters pour les perso et les enemies et de les faire marcher



A venir :

  • Possibilité de définir des battler animés autre que les character de base (j'ai prévue de ne pas mettre de limite au niveau de l'animation)
  • Possibilité de définir une animation sur les perso et les ennemies lors d'un sort ou d'une attaque
  • Eventuelement un ATB
  • D'autres trucs ^^


Instructions :
Pour que le script marche il faut télécharger le fichier "json.rb" et le mettre à la racine de votre projet ainsi que créer deux fichier "battlers.json" et "positions.json" et les remplir avec les json disponibles un peu plus loin.

Script :
Scrpt à coller au dessus de Main:

Code:

#==============================================================================
# ** Require
#------------------------------------------------------------------------------
#  This module require.
#==============================================================================
module Require
    
 #--------------------------------------------------------------------------
  # * Methode require de Berka
  #--------------------------------------------------------------------------
  def self.require(dll)
    $LOAD_PATH<<"./"
    Kernel.send(:require,dll)
  end
  
end

#==============================================================================
# ** SBSManager
#------------------------------------------------------------------------------
#  This module manages SBS.
#==============================================================================

module SBSManager
  
  #--------------------------------------------------------------------------
  # * Load Config
  #--------------------------------------------------------------------------
  def self.load_config(filename)
     if FileTest.exist?("json.rb")
      Require.require 'json'
    else
      error_json("json.rb does not exist")
    end
    
    if FileTest.exist?(filename)    
      File.open(filename) do |file|
       text =  file.read.gsub("\n","").gsub("\t","").gsub(" ","")
        json_object = JSON.decode(text)
        error_json("JSON File "+ filename +" is not valid") if json_object.nil?
        json_object
      end
    else
      error_json(filename+" does not exist")
    end
 end
  
  #--------------------------------------------------------------------------
  # * Display error
  #--------------------------------------------------------------------------
  def self.error_json(msg)
    msgbox(msg)
    exit
  end  
  
  #--------------------------------------------------------------------------
  # * Methode to_boolean
  #--------------------------------------------------------------------------
  def self.to_boolean(value)
    (value.to_s =~ (/(true|t|yes|y|1)$/i)) == 0
  end
end


#==============================================================================
# ** DataManager
#------------------------------------------------------------------------------
#  This module manages the database and game objects. Almost all of the
# global variables used by the game are initialized by this module.
#==============================================================================

module DataManager
  class << self
    
    #--------------------------------------------------------------------------
    # * Create Game Objects
    #--------------------------------------------------------------------------
    alias :skillo_sbs_create_game_objects :create_game_objects
    def create_game_objects
      skillo_sbs_create_game_objects
      $game_battle        = Game_Battle.new
    end
    
    #--------------------------------------------------------------------------
    # * Create Save Contents
    #--------------------------------------------------------------------------
    alias :skillo_sbs_make_save_contents :make_save_contents
    def make_save_contents
      contents = skillo_sbs_make_save_contents
      contents[:battle]        = $game_battle
      contents
    end
    
    #--------------------------------------------------------------------------
    # * Extract Save Contents
    #--------------------------------------------------------------------------
    alias :skillo_sbs_extract_save_contents :extract_save_contents
    def extract_save_contents(contents)
      skillo_sbs_extract_save_contents(contents)
      $game_battle        = contents[:battle]
    end    
  end
end

#==============================================================================
# ** BattleManager
#------------------------------------------------------------------------------
#  This module manages battle progress.
#==============================================================================

module BattleManager
  class << self
    #--------------------------------------------------------------------------
    # * Setup
    #--------------------------------------------------------------------------
    alias :skillo_sbs_bm_setup :setup
    def setup(troop_id, can_escape = true, can_lose = false)
      $game_party.setup
      skillo_sbs_bm_setup(troop_id, can_escape, can_lose)
    end
  end
end

#==============================================================================
# ** Game_System
#------------------------------------------------------------------------------
#  This class handles system data. It saves the disable state of saving and
# menus. Instances of this class are referenced by $game_system.
#==============================================================================

class Game_Battle
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor :party_battlers        # party battlers
  attr_accessor :troop_battlers        # troop battlers
  attr_accessor :party_positions       # party positions
  attr_accessor :troop_positions       # troop positions
  
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    json = SBSManager.load_config("battlers.json")
    @party_battlers = json["party"]
   @troop_battlers = json["troop"]
    json = SBSManager.load_config("positions.json")
    @party_positions = json["party"]
    @troop_positions = json["troop"]
  end

  #--------------------------------------------------------------------------
  # * Actors Battlers Position
 #--------------------------------------------------------------------------  
  def actors_battlers_position(index)
   num_members = $game_party.battle_members.size
    position_member = party_positions[num_members.to_s][index]
    pos ={}
    pos[:x] =  position_member["x"].to_i
    pos[:y] =  position_member["y"].to_i
    pos[:z] =  position_member["z"].to_i
    position_member["zoom"] = 1.0 if position_member["zoom"].nil?
   pos[:zoom] =  position_member["zoom"].to_f
    pos
  end
  
  #--------------------------------------------------------------------------
  # * Actors Battlers Position
 #--------------------------------------------------------------------------  
  def troop_battlers_position(index)
   num_members = $game_troop.members.size
    position_member = troop_positions[num_members.to_s][index]
    pos ={}
    pos[:x] =  position_member["x"].to_i
    pos[:y] =  position_member["y"].to_i
    pos[:z] =  position_member["z"].to_i
    position_member["zoom"] = 1.0 if position_member["zoom"].nil?
   pos[:zoom] =  position_member["zoom"].to_f
    pos
  end
end


#==============================================================================
# ** Game_Battler
#------------------------------------------------------------------------------
#  A battler class with methods for sprites and actions added. This class
# is used as a super class of the Game_Actor class and Game_Enemy class.
#==============================================================================

class Game_Battler < Game_BattlerBase
  
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor :zoom                     # zoom sprite
  attr_accessor :screen_z                 # battle screen z coordinate
  attr_accessor :battler_type             # battler type
 attr_accessor :battler_index             # battler index
 attr_accessor :direction                # direction
  attr_accessor :pattern                  # pattern
  attr_accessor :screen_x                 # battle screen X coordinate
  attr_accessor :screen_y                 # battle screen Y coordinate
  attr_accessor :screen_z                 # battle screen Y coordinate
  
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  alias :skillo_sbs_gb_initialize :initialize
  def initialize
    skillo_sbs_gb_initialize
    @zoom = 1.0
    @battler_type = 0
    @battler_index = 0
    @screen_x = 0
    @screen_y = 0
    @screen_z = 100
    @direction = 4
    @pattern = 1
    @anime_count = 0
    @animated = false
  end
  
  
  #--------------------------------------------------------------------------
  # * Update Walking/Stepping Animation
  #--------------------------------------------------------------------------
  def update
    if @battler_type == 1 && @animated
      @anime_count += 1
      if @anime_count > 18
        @pattern = (@pattern + 1) % 4
        @anime_count = 0
      end
    end
  end  
  
end


#==============================================================================
# ** Game_Enemy
#------------------------------------------------------------------------------
#  This class handles enemies. It used within the Game_Troop class
# ($game_troop).
#==============================================================================

class Game_Enemy < Game_Battler

  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  alias :skillo_sbs_ge_initialize :initialize
  def initialize(index, enemy_id)
    skillo_sbs_ge_initialize(index, enemy_id)
    enemy = $data_enemies[@enemy_id]
    battler = $game_battle.troop_battlers[@enemy_id.to_s]
    if battler
     @battler_type = battler["type"].to_i
      case @battler_type
      when 0
        @battler_name = enemy.battler_name
        @battler_index = 0      
     when 1
        @animated = SBSManager.to_boolean(battler["animated"])
        @battler_name = battler["battler"]
        @battler_index = battler["index"].to_i
       @direction = 6
        @pattern = 1
      end
    else
      @battler_type = 0
      @battler_name = enemy.battler_name
      @battler_index = 0      
    end
  end
  
  #--------------------------------------------------------------------------
  # * Get Battle Screen Z-Coordinate
  #--------------------------------------------------------------------------
  def screen_z
    return @screen_z
  end

end

#==============================================================================
# ** Game_Actor
#------------------------------------------------------------------------------
#  This class handles actors. It is used within the Game_Actors class
# ($game_actors) and is also referenced from the Game_Party class ($game_party).
#==============================================================================

class Game_Actor < Game_Battler
  
  #--------------------------------------------------------------------------
  # * Setup
  #--------------------------------------------------------------------------
  alias :skillo_sbs_setup :setup
  def setup(actor_id)
    @battler_hue = 0
    skillo_sbs_setup(actor_id)
    battler = $game_battle.party_battlers[actor_id.to_s]
    if battler
      @battler_type = battler["type"].to_i
      case @battler_type
      when 0
        @battler_name = battler["battler"]
        @battler_index = character_index      
     when 1
        @animated = SBSManager.to_boolean(battler["animated"])
        @battler_name = character_name
        @battler_index = character_index
        @direction = 4
        @pattern = 1
      end
    else
      @battler_type = 1
      @animated = false
      @battler_name = character_name
      @battler_index = character_index
      @direction = 4
      @pattern = 1      
    end
  end
  
  #--------------------------------------------------------------------------
  # * Use Sprites?
  #--------------------------------------------------------------------------
  def use_sprite?
    return true
  end
  
  #--------------------------------------------------------------------------
  # * Get Battle Screen Z-Coordinate
  #--------------------------------------------------------------------------
  def screen_z
    return @screen_z
  end
end

#==============================================================================
# ** Game_Party
#------------------------------------------------------------------------------
#  This class handles parties. Information such as gold and items is included.
# Instances of this class are referenced by $game_party.
#==============================================================================

class Game_Party < Game_Unit
  
  #--------------------------------------------------------------------------
  # * Setup
  #--------------------------------------------------------------------------
  def setup
    battle_members.each_index do |index|
      member = battle_members[index]
      pos = $game_battle.actors_battlers_position(index)
      member.screen_x = pos[:x]
      member.screen_y = pos[:y]
      member.screen_z = pos[:z]
      member.zoom = pos[:zoom]
    end
  end
 
 #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
   battle_members.each do |battler|
    battler.update
   end
  end
end

#==============================================================================
# ** Game_Troop
#------------------------------------------------------------------------------
#  This class handles enemy groups and battle-related data. Also performs
# battle events. The instance of this class is referenced by $game_troop.
#==============================================================================

class Game_Troop < Game_Unit
  #--------------------------------------------------------------------------
  # * Setup
  #--------------------------------------------------------------------------
  alias :skillo_sbs_gt_setup :setup
  def setup(troop_id)
    skillo_sbs_gt_setup(troop_id)
    members.each_index do |index|
      pos = $game_battle.troop_battlers_position(index)
      enemy = members[index]
      enemy.screen_x = pos[:x]
      enemy.screen_y = pos[:y]
      enemy.screen_z = pos[:z]
      enemy.zoom = pos[:zoom]
    end
  end
  
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  alias :skillo_sbs_gt_update :update
  def update
    skillo_sbs_gt_update
    members.each do |enemy|
      enemy.update
    end
  end
  
end

#==============================================================================
# ** Sprite_Base
#------------------------------------------------------------------------------
#  A sprite class with animation display processing added.
#==============================================================================

class Sprite_Base < Sprite

  #--------------------------------------------------------------------------
  # * Set Animation Sprite
  #     frame : Frame data (RPG::Animation::Frame)
  #--------------------------------------------------------------------------
  alias :skillo_sbs_animation_set_sprites :animation_set_sprites  
  def animation_set_sprites(frame)
    skillo_sbs_animation_set_sprites(frame)
    cell_data = frame.cell_data
    @ani_sprites.each_with_index do |sprite, i|
      next unless sprite
      pattern = cell_data[i, 0]
      if !pattern || pattern < 0
        sprite.visible = false
        next
      end
      sprite.zoom_x = cell_data[i, 3] / (100.0/self.zoom_x)
      sprite.zoom_y = cell_data[i, 3] / (100.0/self.zoom_y)
    end
  end
end

#==============================================================================
# ** Sprite_Battler
#------------------------------------------------------------------------------
#  This sprite is used to display battlers. It observes an instance of the
# Game_Battler class and automatically changes sprite states.
#==============================================================================

class Sprite_Battler < Sprite_Base
  #--------------------------------------------------------------------------
  # * Update Transfer Origin Bitmap
  #--------------------------------------------------------------------------
  alias :skillo_sbs_update_bitmap :update_bitmap
  def update_bitmap
    if(@battler.battler_type == 0)
      skillo_sbs_update_bitmap
      @cw = bitmap.width
      @ch = bitmap.height
    else
      if graphic_changed?
        @character_name = @battler.battler_name
        @character_index = @battler.battler_index
       set_character_bitmap
      end
      update_src_rect
    end
    self.zoom_x = @battler.zoom
    self.zoom_y = @battler.zoom
  end

  #--------------------------------------------------------------------------
  # * Determine if Graphic Changed
  #--------------------------------------------------------------------------
  def graphic_changed?
    @character_name != @battler.battler_name ||
    @character_index != @battler.battler_index
  end

  
  #--------------------------------------------------------------------------
  # * Update Origin
  #--------------------------------------------------------------------------
  def update_origin
    if bitmap
      self.ox = @cw/2
      self.oy = @ch/2
    end
  end
  
  #--------------------------------------------------------------------------
  # * Set Character Bitmap
  #--------------------------------------------------------------------------
  def set_character_bitmap
    self.bitmap = Cache.character(@battler.battler_name)
    sign = @battler.battler_name[/^[\!\$]./]
    if sign && sign.include?('$')
      @cw = self.bitmap.width / 3
      @ch = self.bitmap.height / 4
    else
      @cw = self.bitmap.width / 12
      @ch = self.bitmap.height / 8
    end
  end
  
  #--------------------------------------------------------------------------
  # * Update Transfer Origin Rectangle
  #--------------------------------------------------------------------------
  def update_src_rect
    index = @battler.battler_index
    pattern = @battler.pattern < 3 ? @battler.pattern : 1
    sx = (index % 4 * 3 + pattern) * @cw
    sy = (index / 4 * 4 + (@battler.direction - 2) / 2) * @ch
    self.src_rect.set(sx, sy, @cw, @ch)
  end
  
  #--------------------------------------------------------------------------
  # * Update Position
  #--------------------------------------------------------------------------
  def update_position
    self.x = @battler.screen_x
    self.y = @battler.screen_y
    self.z = @battler.screen_z
  end
  
  #--------------------------------------------------------------------------
  # * Revert to Normal Settings
  #--------------------------------------------------------------------------
  alias :skillo_sbs_revert_to_normal :revert_to_normal
  def revert_to_normal
    skillo_sbs_revert_to_normal
    self.ox = @cw / 2  if bitmap
 end
  
end

#==============================================================================
# ** Spriteset_Battle
#------------------------------------------------------------------------------
#  This class brings together battle screen sprites. It's used within the
# Scene_Battle class.
#==============================================================================

class Spriteset_Battle

  #--------------------------------------------------------------------------
  # * Create Actor Sprite
  #    By default, the actor image is not displayed, but for convenience
  #    a dummy sprite is created for treating enemies and allies the same.
  #--------------------------------------------------------------------------
  def create_actors
    @actor_sprites = $game_party.battle_members.reverse.collect do |actor|
      Sprite_Battler.new(@viewport1, actor)
    end
  end
  
  #--------------------------------------------------------------------------
  # * Update Enemy Sprite
  #--------------------------------------------------------------------------
  def update_actors
    @actor_sprites.each {|sprite| sprite.update }
  end
end

#==============================================================================
# ** Scene_Battle
#------------------------------------------------------------------------------
#  This class performs battle screen processing.
#==============================================================================

class Scene_Battle < Scene_Base

  #--------------------------------------------------------------------------
  # * Update Frame (Basic)
  #--------------------------------------------------------------------------
  alias :skillo_sbs_sb_update_basic :update_basic
  def update_basic
    skillo_sbs_sb_update_basic
    $game_party.update
  end
end

Fichiers de configuration :
battlers.json:

Code:

{
 "party" : {
 "1": {
 "type":"1"
 "animated":"true"
 },
 "2": {
 "type":"1"
 "animated":"true"
 }
 },
"troop" : {
 "2": {
 "type":"0"
 },
 "1": {
 "type":"1",
 "battler":"Actor1.png",
 "index":"0"
 "animated":"false"
 }
 }
}

Ce fichier sert à definir les battlers. Il est en deux parties :


  • les perso (party)
  • les enemies (troop)


Chaque battler est attribué en fonction d'un id et il peut avoir plusieurs parametres :


  • "type" : Le type de battler ("0"=Image fixe, "1"=character)
  • "battler" : L'image du battler (présente dans "Battlers" si type = "0" ou dans "Characters" si type = "1")
  • "animated" : definir si le character sera animé ou non (utilisé seulement si le type = 1)
  • "index" : dans le cas où c'est un enemie auquel on attribue un character, l'index est celui du personnage dans la planche de character



Si un héros n'est pas définie dans ce fichier de config alors on utilisera sont character par défaut sans animation.
Si un ennemie n'est pas définie dans ce fichier de config alors on utilisera son image fixe par défaut.


positions.json:

Code:

{
 "party": {
 "1": [
 {"x":"360","y":"220","z":"100","zoom":"1.0"}
       ],
        "2": [
            {"x":"330","y":"220","z":"100","zoom":"1.0"},
           {"x":"390","y":"250","z":"100","zoom":"1.0"}
        ],
        "3": [
            {"x":"330","y":"200","z":"100","zoom":"1.0"},
           {"x":"390","y":"230","z":"100","zoom":"1.0"},
           {"x":"450","y":"260","z":"100","zoom":"1.0"}
        ],
        "4": [
            {"x":"300","y":"180","z":"100","zoom":"1.0"},
           {"x":"340","y":"210","z":"100","zoom":"1.0"},
           {"x":"380","y":"240","z":"100","zoom":"1.0"},
 {"x":"420","y":"270","z":"100","zoom":"1.0"}
        ]  
   },
    "troop": {
        "1": [
            {"x":"180","y":"20","z":"100","zoom":"1.0"}
       ],
        "2": [
            {"x":"210","y":"220","z":"100","zoom":"1.0"},
           {"x":"150","y":"250","z":"100","zoom":"1.0"}
        ],
        "3": [
            {"x":"210","y":"200","z":"100","zoom":"1.0"},
           {"x":"150","y":"230","z":"100","zoom":"1.0"},
           {"x":"90","y":"260","z":"100","zoom":"1.0"}
        ],
        "4": [
            {"x":"210","y":"190","z":"100","zoom":"1.0"},
           {"x":"150","y":"210","z":"100","zoom":"1.0"},
           {"x":"90","y":"230","z":"100","zoom":"1.0"},
 {"x":"30","y":"250","z":"100","zoom":"1.0"}
        ]  
    }
}

Fichier ruby à placer à la racine de votre projet :
http://www.mediafire.com/view/2axzacfjd87dacv/json.rb

Screen :
Pour l'instant ça donne ça
[VXAce] SBS Homemade Mini_688424screen
ou ça
[VXAce] SBS Homemade Mini_611468Capture
ou un mix des deux


Edit : ajout de la configuration dans un fichier json + gestion du zoom sur les battlers
Edit : ajout de la configuration dans deux fichiers json + gestion des characters pour les combat à avec possibilité de les animers



Dernière édition par Skillo le Mar 21 Jan 2014 - 3:08, édité 6 fois
onikowai
onikowai
Membre

Nombre de messages : 396
Age : 33
Localisation : Vaucluse
Distinction : aucune
Date d'inscription : 04/01/2013

[VXAce] SBS Homemade Empty Re: [VXAce] SBS Homemade

le Dim 12 Jan 2014 - 17:45
Ah mais c'est super.
J'attend juste de voir le rendu des combat.
En tout cas bravo.
Ah oui existe t'il des battlers des heros?
Xandiar
Xandiar
Membre

Nombre de messages : 497
Age : 24
Localisation : Suisse
Distinction : aucune
Date d'inscription : 12/10/2013

[VXAce] SBS Homemade Empty Re: [VXAce] SBS Homemade

le Lun 13 Jan 2014 - 11:45
@onikowai

Nan, il n'en existe pas (j'ai pas été voir sur les sites japonais) mais crée plutôt tes charas en fonction de ton "Battler-Hero".

Il faut dire que normalement on est pas censé avoir son héro en face de soit x'), encore moins sous la forme de battler ^^.

En tout cas c'est un script sympa, je vais vite l'essayé Wink !
Elisa'
Elisa'
Staffeux retraité

Nombre de messages : 2924
Age : 22
Localisation : Par là-bas !
Distinction : Mon héritière que je chéris [VXAce] SBS Homemade 344805[VXAce] SBS Homemade 344805
[Coco' Smile]
Plus que 2 ans avant d'épouser Coco' ! Compte à rebours lancé !
[Auto-distinction]

Adepte du "Je le savais" alors qu'elle le savait pas.
Date d'inscription : 30/05/2009

[VXAce] SBS Homemade Empty Re: [VXAce] SBS Homemade

le Lun 13 Jan 2014 - 22:52
+5 points de participation

Bonne continuation Very Happy
Skillo
Skillo
Staffeux retraité

Nombre de messages : 526
Age : 30
Localisation : Rennes
Distinction : J'aime ce gars :P
(by Coco')
Scripteur apprenti, futur Berka !
(par Tretian)
Membre anonyme de la communauté, caché derrière son PC
(???)
super prof de script
[Dudu']
Résident permanent de la Chat Box
[Autoproclamé]
Adepte du XDDD [Yak' Very Happy]
Fanatique hystérique de Raymond le français [Un connu]
Date d'inscription : 19/01/2008

[VXAce] SBS Homemade Empty Re: [VXAce] SBS Homemade

le Mar 14 Jan 2014 - 22:21
Merci bien ^^

Changement de plan, le fichier de configuration sera au format JSON, et ouais parce que ya un script pour décoder du JSON et que le parser YAML qui est efficace bah il fait partie des libs de ruby et qu'il est pas inclue dans RPG Maker et c'est domage mais c'est pas là mort.

Pour ceux qui ne connaissent pas le JSON ou JavaScript Object Notation c'est un format de donné super utilisé dans le monde du web car il a l'avantage de se mapper directement en objets Javascript et ça c'est biensurtout quand on est comme moi à faire de l'AngularJS la moitié de son temps.

Enfin bref je m'égare. En gros, en JSON :
Code:
{}
c'est un object
Code:
[]
c'est une liste
Code:
{"clé":"valeur"}
c'est un objet qui a un attribut "clé" qui a pour valeur "valeur"

Ce qui donnerais comme configuration pour ma version prépré alpha de mon script ceci :
Code:

{
  battlers : {
      "1": "Hero_m.png",
      "2": "Hero_f.png"
  },
  positions : {
    "actors": {
        "1": [
            { "x":"10","y":20,"z":"100" ,"zoom":"0.5"} 
        ],
        "2": [
            { "x":"10","y":20,"z":"100" ,"zoom":"0.5"}, 
            { "x":"20","y":50,"z":"100" ,"zoom":"1"}
        ] 
    }
  }
}
Le but étant de garder des fichiers de configurations qui soient claire et lisible en effet pour moi le gros défaut du SBS de VX est le manque de clarté des infos de la configuration en effest on se retrouve souvent à configurer une liste de chiffres sans vraiment savoir à quoi ils correspondent.

Là on voit que battlers c'est la définition des images, positions c'est évidemment la position des personnages et si on interprète bien on peut même comprendre que c'est la position en fonction du nombre de persos. De plus les coordonnées sont des attributs donc, on visualise bien quel nombre correspond à la coordonnée x etc ...

Voilà hésitez pas à donner votre avis sur ça, sachant que l'inconvenient c'est que le fichier de configuration risque d'être gros mais je préfère gros et lisible que petit et incompréhensible (on est plus à quelques Mo près).

Pour les plus attentifs d'entre vous, vous aurez peut être remarquer la notion de zoom, en effet il sera possible très très bientôt de définir un zoom, sur les sprites (ça retaillera aussi les animations) ce qui pourra éviter de resizeer tous les battlers à la main. Par défaut, le zoom est à 1 s'il n'est pas précisé dans le JSON.
Skillo
Skillo
Staffeux retraité

Nombre de messages : 526
Age : 30
Localisation : Rennes
Distinction : J'aime ce gars :P
(by Coco')
Scripteur apprenti, futur Berka !
(par Tretian)
Membre anonyme de la communauté, caché derrière son PC
(???)
super prof de script
[Dudu']
Résident permanent de la Chat Box
[Autoproclamé]
Adepte du XDDD [Yak' Very Happy]
Fanatique hystérique de Raymond le français [Un connu]
Date d'inscription : 19/01/2008

[VXAce] SBS Homemade Empty Re: [VXAce] SBS Homemade

le Mar 21 Jan 2014 - 9:32
Mise à jour du topic principale pour ajouter le fichier de configuration, le positionnement des perso et des ennemy ainsi que le zoom sur les sprites.

Mise à jour du topic principale pour ajouter un nouveau fichier de configuration, l'utilisation des character pour les persos et les ennemies.
Fairy-Team
Fairy-Team
Membre

Nombre de messages : 98
Age : 18
Localisation : dans tes neurones
Distinction : aucune
Date d'inscription : 06/04/2014

[VXAce] SBS Homemade Empty Re: [VXAce] SBS Homemade

le Dim 20 Avr 2014 - 9:23
J'espère ne pas faire de nécropost mais quelqu'un aurais pas une démo car moi je suis perdus  Crying or Very sad Crying or Very sad 
Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum