设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 456|回复: 1
打印 上一主题 下一主题

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

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1063
在线时间
89 小时
注册时间
2023-12-26
帖子
127
跳转到指定楼层
1
发表于 2024-3-29 22:26:59 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

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

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

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

可以设置多个任何位置的,可点击进入....

4832B1251D54495A9FA205793DC109C1.png (1.06 MB, 下载次数: 26)

4832B1251D54495A9FA205793DC109C1.png

Lv4.逐梦者

梦石
0
星屑
6260
在线时间
1481 小时
注册时间
2015-7-25
帖子
652

开拓者

2
发表于 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这行写,如果你需要哪个选项做完全不同的事情,那就直接在类里定义一个就行了


RUBY 代码复制
  1. class Scene_SpriteChoice < Scene_MenuBase
  2.   def start
  3.     super
  4.     @index = 0
  5.     @sprite_choice = []
  6.     @sprite_method = []
  7.     create_sprites
  8.     create_method
  9.   end
  10.   def create_method
  11.     @sprite_method.each do |m|
  12.     eval <<-end_eval
  13.       def #{m}
  14.         p @index
  15.       end
  16.     end_eval
  17.     end
  18.   end
  19.   def create_background
  20.     @background_sprite = Sprite.new
  21.     @background_sprite.bitmap = SceneManager.background_bitmap
  22.   end
  23.   def create_sprites
  24.     $sprite_choice.each_value do |i|
  25.       sprite = Sprite.new
  26.       sprite.bitmap = Cache.picture(i[0])
  27.       sprite.x = i[1]
  28.       sprite.y = i[2]
  29.       @sprite_choice << sprite
  30.       @sprite_method << i[3]
  31.       sprite.bitmap.draw_text(i[1],i[2]+100,200,24,$sprite_choice.index([i[0],i[1],i[2],i[3]]))
  32.     end
  33.   end
  34.   def update
  35.     super
  36.     update_sprite_choice
  37.     input_sprite
  38.     update_choice
  39.   end
  40.   def update_sprite_choice
  41.     @sprite_choice.each {|i|i.update}
  42.   end
  43.   def input_sprite
  44.     return unless Input.dir4 > 0
  45.     case Input.dir4
  46.     when 2,6
  47.       @index += 1
  48.     when 4,8
  49.       @index -= 1
  50.     end
  51.     @index = 0 if @index > @sprite_choice.size - 1
  52.     @index = @sprite_choice.size - 1 if @index < 0
  53.     @sprite_choice.each {|i|i.zoom_x,i.zoom_y=1,1}
  54.     @sprite_choice[@index].zoom_x = 1.2
  55.     @sprite_choice[@index].zoom_y = 1.2
  56.   end
  57.   def update_choice
  58.     if Input.trigger?(:C)
  59.       method(@sprite_method[@index]).call
  60.     end
  61.     return_scene if Input.trigger?(:B)
  62.   end
  63.  
  64.   def dispose
  65.     super
  66.     dispose_sprite_choice
  67.   end
  68.   def dispose_sprite_choice
  69.     @sprite_choice.each {|i|i.dispose}
  70.   end
  71. end
笨肉包的首款像素OC游戏《花城梦之心》尝试制作中~
目前的坑 【不可思议的迷宫】幽灵契约外传:歌莉娅
持续更新中~ 当前进度 v0.28
大版本更新时才会更新网盘文件,预计下次大版本更新:v0.30
完成度:
主线 15% 支线 0% 数据库 6% 系统 86% 美术 6%
两边同时填坑~
( 这里是笨肉包~专修魔法!目标是大魔法师!
( 坑太大啦,一个人填不完啦hhh 一定会填完的嗯...
( 每天都和bug们比试魔力~吾之魔法将扫平一切!
( 弱点是美术,魔法修行之余再补补课吧~
( 哼哼哼~这便是魔法的力量!
大家都离开啦,笨肉包也不知道还能坚持多久呀...
这是属于笨肉包一个人的旅行(再见了...蚊子湯,七重酱,笨肉包永远想你们!TwT
回复 支持 2 反对 0

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-10 19:14

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表