Registrarse

[RPG - Otros] ¿Como meter eventos arriba de imagenes?

Estado
Cerrado para nuevas respuestas.

NeoGeo

Usuario de plata
Normalmente cuando uno usa la función "mostrar imagen" esta tapa todos los eventos. Yo lo que quiero es que los eventos se muestren por encima de la imagen ¿alguna idea?
 

Nachoius

Caminante del cielo
Normalmente cuando uno usa la función "mostrar imagen" esta tapa todos los eventos. Yo lo que quiero es que los eventos se muestren por encima de la imagen ¿alguna idea?
toca saber como editar el codigo en ruby, debes aprender a programar y hacer un script que modifique la profundidad de las imagenes. Ni idea como hacerlo
 

Manurocker95

Doctorando en Ingeniería Biomédica & Game Dev
Miembro insignia
Tienes que hacer una funcion que permita pintar entre la “capa” del tileado y los eventos. No es difícil de hacer, pero tendrás que tocar scripting
 

NeoGeo

Usuario de plata
Bueno, muchas gracias a ambos. Estoy aprendiendo programación, pero voy muy lento, apenas entiendo como hacer una variable global ja ja eso está lejos de mi conocimiento.
 

Manurocker95

Doctorando en Ingeniería Biomédica & Game Dev
Miembro insignia
Es igual que como hacía Klein con las sombras. Sería algo como (tampoco le he dado muchas vueltas así que no creo que funcione, pero @NeoGeo te puede servir de referencia):


Código:
class CustomSprite
  def initialize(image,x,y,z,opacity,viewport=nil)
    @sprite=Sprite.new(viewport)
    @sprite.bitmap=BitmapCache.load_bitmap(image)
    @disposed=false
    @viewport=viewport
    @posx=x
    @posy=y
    @posz=z
    @opacity=opacity
    update
  end

  def dispose
    if !@disposed
      @sprite.dispose if @sprite
      @sprite=nil
      @disposed=true
    end
  end

  def update
    return if @disposed
    @sprite.x=@posx
    @sprite.y=@posy
    @sprite.z=@posz
    @sprite.opacity=@opacity
  end
end

def pbShowImage(image, x, y, opacity)
  if $scene && $scene.is_a?(Scene_Map)
    if $scene.respond_to?("pbAddCustomSprite")
      $scene.pbAddCustomSprite(image,x,y,opacity)
    end
  end
end

class Spriteset_Map
  alias custom_image_initialize initialize
  def initialize(map=nil)
    @customSprites=[]
    @z=1 #esta la que sea por defecto
    @z=character_sprites[0].z-1 if character_sprites.length>0
    custom_image_initialize(map)
  end

  def pbAddCustomSprite(sprite,x,y,opacity)
      @customSprites.push(CustomSprite.new(sprite,x,y,@viewport1,opacity))
  end

  alias custom_sprite_dispose dispose
  def dispose
    custom_sprite_dispose
    for sprite in @customSprites
      sprite.dispose
      @customSprites.delete(sprite)
    end
  end

  alias custom_sprite_update update
  def update
    custom_sprite_update

if Input.trigger?(Input::C)
  for sprite in @customSprites
      sprite.dispose
      @customSprites.delete(sprite)
    end
return
end

    for sprite in @customSprites
      sprite.update
    end
  end
end
 
Última edición:

NeoGeo

Usuario de plata
Es igual que como hacía Klein con las sombras. Sería algo como (tampoco le he dado muchas vueltas así que no creo que funcione, pero @NeoGeo te puede servir de referencia):


Código:
class CustomSprite
  def initialize(image,x,y,z,opacity,viewport=nil)
    @sprite=Sprite.new(viewport)
    @sprite.bitmap=BitmapCache.load_bitmap(image)
    @disposed=false
    @viewport=viewport
    @posx=x
    @posy=y
    @opacity=opacity
    update
  end

  def dispose
    if !@disposed
      @sprite.dispose if @sprite
      @sprite=nil
      @disposed=true
    end
  end

  def update
    return if @disposed
    @sprite.x=posx
    @sprite.y=posy
    @sprite.z=z
    @sprite.opacity=@opacity
  end
end

def pbShowImage(image, x, y, opacity)
  if $scene && $scene.is_a?(Scene_Map)
    if $scene.respond_to?("pbAddCustomSprite")
      $scene.pbAddCustomSprite(image,x,y,opacity)
    end
  end
end

class Spriteset_Map
  alias custom_image_initialize initialize
  def initialize(map=nil)
    @customSprites=[]
    @z=1 #esta la que sea por defecto
    @z=character_sprites[0].z if character_sprites.length>0
    custom_image_initialize(map)
  end

  def pbAddCustomSprite(sprite,x,y,opacity)
      @customSprites.push(CustomSprite.new(sprite,x,y,@viewport1,opacity))
  end

  alias custom_sprite_dispose dispose
  def dispose
    custom_sprite_dispose
    for sprite in @customSprites
      sprite.dispose
      @customSprites.delete(sprite)
    end
  end

  alias custom_sprite_update update
  def update
    custom_sprite_update

if Input.trigger?(Input::C)
  for sprite in @customSprites
      sprite.dispose
      @customSprites.delete(sprite)
    end
end

    for sprite in @customSprites
      sprite.update
    end
  end
end
Wow! No tu hubieses molestado! Muchas gracias bro! Intentaré trabajar a partir de eso.
 

Manurocker95

Doctorando en Ingeniería Biomédica & Game Dev
Miembro insignia
Usar Scene_Map es unicamente porque tiene acceso al orden de render pero seguro que hay otra forma mucho mas sencilla
 
Estado
Cerrado para nuevas respuestas.
Arriba