Partagez
Aller en bas
Anonymous
Invité
Invité

[Résolu] Transparence des tilesets Empty [Résolu] Transparence des tilesets

le Lun 21 Déc 2009 - 14:36
Bonjour à tous !^^


Explication complète : Je viens d'installer le TilsetEditor et je commence (juste!) à le maitriser. J'ai ajouté de nouvelles plaquettes, jusque là pas de problème, seulement, lorsque je veux mettre un drapeau, ou le clocher (comme sur le screens) ils ne se mettent pas dessus, mais ils m'effacent le toit et font apparaitre ce qu'il y a en dessous (l'herbe ou le mur par exemple). Alors que qu'avec d'autre je n'ai pas de problème... Je n'arrive donc pas à savoir d'où cela peut venir...

J'espère que le problème n'a pas déjà été posé, car je ne sais pas quoi taper exactement dans la fonction recherche pour résoudre mon problème.
Je ne sais pas s'il vient du TilesetEditor, de la plaquette ou tout simplement de moi... silent

Screens :
[Résolu] Transparence des tilesets Tilpb_10

Merci d'avance ! J'espère avoir été claire...
[Résolu] Transparence des tilesets 466669


Dernière édition par Elvira le Lun 21 Déc 2009 - 18:18, édité 1 fois
ZangtherOld
ZangtherOld
Membre

Nombre de messages : 1711
Date d'inscription : 07/08/2009

[Résolu] Transparence des tilesets Empty Re: [Résolu] Transparence des tilesets

le Lun 21 Déc 2009 - 15:04
Cela vient du fait qu'y n'y a que deux couches de décor pour les tileset.
En gros si tu veux que le toi apparaisse la il faut que tu fasse une modification du tileset en lui même.
avatar
Az'
Membre

Nombre de messages : 3318
Age : 74
Date d'inscription : 22/12/2007

[Résolu] Transparence des tilesets Empty Re: [Résolu] Transparence des tilesets

le Lun 21 Déc 2009 - 15:44
Même pas.

Code:
#script débugé par Ashka bis







class Scene_Map < Scene_Base

  alias start_2 start

  alias update_2 update

  attr_reader :map_layer_spritesets

  #--------------------------------------------------------------------------

  # * Start processing

  #--------------------------------------------------------------------------

  def start

    start_2

    setup_map_layers

  end

 

  def update_transfer_player

    return unless $game_player.transfer?

    fade = (Graphics.brightness > 0)

    fadeout(30) if fade

    @spriteset.dispose              # Dispose of sprite set

    for i in 0...@map_layer_spritesets.size

      @map_layer_spritesets[i].dispose

    end

    $game_player.perform_transfer  # Execute player transfer

    $game_map.autoplay              # Automatically switch BGM and BGS

    $game_map.update

    Graphics.wait(15)

    @spriteset = Spriteset_Map.new  # Recreate sprite set

    setup_map_layers

    fadein(30) if fade

    Input.update

  end

   

  def setup_map_layers

    maps = load_data("Data/MapInfos.rvdata")

    game_map_name = maps[$game_map.map_id].name

    @map_layers = []

    @map_layer_spritesets = []

    map_names = []

    layer_map_names = []

    layer_index = []

    c = maps.keys

    d = c.max

    for i in 1..d

      unless maps[i] == nil

        a = nil

        map_names.push(maps[i].name)

        a = maps[i].name =~ /(l|L)\d+/

        layer_map_names.push(maps[i].name) if a != nil

        layer_index.push(maps.index(maps[i])) if a != nil

      end

    end

    for string in layer_map_names

      string.chop! until string == game_map_name or string == ""# nil

    end

    if layer_map_names.include?(game_map_name)

      for i in 0...layer_map_names.size

        if layer_map_names[i] != ""

          map = Game_Map.new

          map.setup(layer_index[i])

          @map_layer_spritesets.push(Spriteset_Map_2.new(map))

          @map_layers.push(map)

        end

      end

    end

  end

 

  def update

    update_2

    for i in 0...@map_layer_spritesets.size

      @map_layers[i].update

      @map_layer_spritesets[i].update

    end

  end 

end

class Spriteset_Map_2 < Spriteset_Map

  #--------------------------------------------------------------------------

  # * Object Initialization

  #--------------------------------------------------------------------------

  def initialize(layer)

    @layer = layer

    create_viewports

    create_tilemap

    update

  end



  def update

    update_tilemap

    update_viewports

  end



  def dispose

    @tilemap.dispose

  end

 

  #--------------------------------------------------------------------------

  # * Create Tilemap

  #--------------------------------------------------------------------------

  def create_tilemap(a1 = nil, a2 = nil, a3 = nil, a4 = nil, a5 = nil, b = nil, c = nil, d = nil, e = nil)

    @tilemap = Tilemap.new(@viewport1)

    @tilemap.bitmaps[0] = (a1 == nil ? Cache.system("TileA1") : a1)

    @tilemap.bitmaps[1] = (a2 == nil ? Cache.system("TileA2") : a2)

    @tilemap.bitmaps[2] = (a3 == nil ? Cache.system("TileA3") : a3)

    @tilemap.bitmaps[3] = (a4 == nil ? Cache.system("TileA4") : a4)

    @tilemap.bitmaps[4] = (a5 == nil ? Cache.system("TileA5") : a5)

    @tilemap.bitmaps[5] = (b == nil ? Cache.system("TileB") : b)

    @tilemap.bitmaps[6] = (c == nil ? Cache.system("TileC") : c)

    @tilemap.bitmaps[7] = (d == nil ? Cache.system("TileD") : d)

    @tilemap.bitmaps[8] = (e == nil ? Cache.system("TileE") : e)

    @tilemap.map_data = @layer.data

    @tilemap.passages = @layer.passages

  end

  #--------------------------------------------------------------------------

  # * Update Tilemap

  #--------------------------------------------------------------------------

#  def update_tilemap

#    @tilemap.ox = @layer.display_x / 8

#    @tilemap.oy = @layer.display_y / 8

#    @tilemap.update

#  end

  #--------------------------------------------------------------------------

  # * Update Viewport

  #--------------------------------------------------------------------------

  def update_viewports

    @viewport1.tone = @layer.screen.tone

    @viewport1.ox = @layer.screen.shake

    @viewport2.color = @layer.screen.flash_color

    @viewport3.color.set(0, 0, 0, 255 - @layer.screen.brightness)

    @viewport1.update

    @viewport2.update

    @viewport3.update

  end

end

Et ça marche comme ça :

Map originelle : Nom_map
Map de couche supplémentaire 1 : Nom_map+L1
Map de couche supplémentaire 2 : Nom_map+L2

Etc.
Il me semble qu'il n'y a pas de limite.

Tu m'as compris ou tu as besoin de plus d'explications?
Anonymous
Invité
Invité

[Résolu] Transparence des tilesets Empty Re: [Résolu] Transparence des tilesets

le Lun 21 Déc 2009 - 17:43
Merci à vous deux !

Oui Mist' je veux bien un peu d'explication ^^

Je suppose qu'il faut que je recopie le script dans le Main Process ?

Merci d'avance
avatar
Az'
Membre

Nombre de messages : 3318
Age : 74
Date d'inscription : 22/12/2007

[Résolu] Transparence des tilesets Empty Re: [Résolu] Transparence des tilesets

le Lun 21 Déc 2009 - 18:02
Insères le script que je t'ai donné dans un nouvel emplacement vierge (colonne de gauche, presses Inser, et dans la colonne de droite, colles-y le script, puis presses OK).

Ensuite, imaginons ta map, elle s'appelle... Village.
Tu fais la couche dite basse de ta map, et ensuite, tu CREES une nouvelle map que tu appelleras VillageL1, cette nouvelle map viendra se superposer, elle et ses éléments sur la map Village.

Est-ce assez explicite comme ça? ;P
Dudu'
Dudu'
Staffeux retraité

Nombre de messages : 2060
Age : 28
Distinction : Apprenti KGB-boy en avenir
[Coco' Smile]
Hamsterphile de service ^^
[Balby' le Fake]
Grand prof de la MA
[Skillo]
Ce grand programmateur, mon coeur, ma vie ! [Hamu']
Date d'inscription : 22/06/2009

[Résolu] Transparence des tilesets Empty Re: [Résolu] Transparence des tilesets

le Lun 21 Déc 2009 - 18:04
pour voire ce que ça peut donner va voir içi:
---------->LA<----------
Anonymous
Invité
Invité

[Résolu] Transparence des tilesets Empty Re: [Résolu] Transparence des tilesets

le Lun 21 Déc 2009 - 18:12
Parfait !

Les explications et les images ça aident^^ Je vais essayer !

Merci beaucoup !

Edit : ça marche parfaitement ! Encore merci !
Contenu sponsorisé

[Résolu] Transparence des tilesets Empty Re: [Résolu] Transparence des tilesets

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum