查看: 1331|回复: 1

[已经解决] ACE--请问有这种自定义设置图片和文字选择的脚本吗

[复制链接]
梦石
0
星屑
1737
在线时间
123 小时
注册时间
2023-12-26
回帖
184
发表于 2024-3-29 22:26:59 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
请问有这样的脚本吗?就是这种图标和文字可以移动到何位置,自定义添加一个两个三个。。。这样的脚本?
ACE--请问有这种自定义设置图片和文字选择的脚本吗

可以设置多个任何位置的,可点击进入....
4832B1251D54495A9FA205793DC109C1.png
梦石
0
星屑
6375
在线时间
1473 小时
注册时间
2015-7-25
回帖
609

极短25参与开拓者

发表于 2024-3-30 20:33:29 | 显示全部楼层
粗略的做了个大概,用在事件中或脚本栏中都可以
$sprite_choice = {}
$sprite_choice["选项1"]=["图片1",0,0,:a]
$sprite_choice["选项2"]=["图片2",100,0,:b]
SceneManager.call(Scene_SpriteChoice)
第一行和最后一行不要动,中间的自己添加
上面的例子中,"选项1"是在画面中描绘出来让你看到的选项的名称
"图片1"是选项图片的文件名
后面的两个数字分别是x,y坐标
最后的:a和:b是选择了该选项后执行的函数名,这个得你自己设定,你需要在点击后怎么做,就在脚本里怎么写,如果你不在脚本里写对应的方法,那默认是会p一个index出来,这里也是可以随便改的
如果你需要的选项基本上都在执行同一件事,那就直接在p @index这行写,如果你需要哪个选项做完全不同的事情,那就直接在类里定义一个就行了


[pre lang="ruby"]class Scene_SpriteChoice < Scene_MenuBase
  def start
    super
    @index = 0
    @sprite_choice = []
    @sprite_method = []
    create_sprites
    create_method
  end
  def create_method
    @sprite_method.each do |m|
    eval <<-end_eval
      def #{m}
        p @index
      end
    end_eval
    end
  end
  def create_background
    @background_sprite = Sprite.new
    @background_sprite.bitmap = SceneManager.background_bitmap
  end
  def create_sprites
    $sprite_choice.each_value do |i|
      sprite = Sprite.new
      sprite.bitmap = Cache.picture(i[0])
      sprite.x = i[1]
      sprite.y = i[2]
      @sprite_choice << sprite
      @sprite_method << i[3]
      sprite.bitmap.draw_text(i[1],i[2]+100,200,24,$sprite_choice.index([i[0],i[1],i[2],i[3]]))
    end
  end
  def update
    super
    update_sprite_choice
    input_sprite
    update_choice
  end
  def update_sprite_choice
    @sprite_choice.each {|i|i.update}
  end
  def input_sprite
    return unless Input.dir4 > 0
    case Input.dir4
    when 2,6
      @index += 1
    when 4,8
      @index -= 1
    end
    @index = 0 if @index > @sprite_choice.size - 1
    @index = @sprite_choice.size - 1 if @index < 0
    @sprite_choice.each {|i|i.zoom_x,i.zoom_y=1,1}
    @sprite_choice[@index].zoom_x = 1.2
    @sprite_choice[@index].zoom_y = 1.2
  end
  def update_choice
    if Input.trigger?(:C)
      method(@sprite_method[@index]).call
    end
    return_scene if Input.trigger?(:B)
  end
  
  def dispose
    super
    dispose_sprite_choice
  end
  def dispose_sprite_choice
    @sprite_choice.each {|i|i.dispose}
  end
end[/pre]
笨肉包的游戏讨论群932812135 (实时更新) 喜欢的话欢迎加入~
目前的坑
??? #像素风OC游戏 准备中 短篇-约5小时
花城梦之心 #像素风OC游戏 系统开发+素材绘制中
【不可思议的迷宫】幽灵契约外传:歌莉娅 v0.4 游戏文件已更新
同时更新中~ (沉迷摸鱼中~更新速度较慢请见谅w)
这是属于笨肉包一个人的旅行~(这只肉包又在摸鱼!
旅途的最终目标~ ???(保密~
回复 2 0

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部