赞 | 3 |
VIP | 1324 |
好人卡 | 17 |
积分 | 10 |
经验 | 61438 |
最后登录 | 2024-6-19 |
在线时间 | 937 小时 |
Lv3.寻梦者 昨日的黄昏
- 梦石
- 0
- 星屑
- 1005
- 在线时间
- 937 小时
- 注册时间
- 2006-11-5
- 帖子
- 4128
|
本帖最后由 七夕小雨 于 2012-5-3 14:48 编辑
只有思路可以嘛 = =
1.RM本身的数据库 有物品的ID 用rand函数 获取0~物品编号最大值之间的物品,循环25次后加入数组或者hash中然后用精灵形式表现
2.是类似拉巴的功能
实现非常简单
比如你的25个物品所存放的数据是 0~25 ,然后有一个 a =0 (初始化的摇奖位置)
然后 update方法中加入 a+=1 (当然你可以控制等待时间,越到后面越慢)最后停住 a 就是获得物品的变量, 然后从数组中得到物品加入自己的背包即可
大概代码
关于问题1
#item_list是随机生成的25个物品的泛型集合
@item_list = []
#循环25次随机将物品填入集合@item_list
0.upto(25) do |i|
@item_list<< $data_items[rand($data_items.size-1)]
end
关于问题2
在Scene的main处理中
#申明转动最后停止所需要的总时间
@time = 200 #200帧
@position = 0 #初始选择的位置为 0
@stop? = false#是否已经停止?
@end? = false#是否摇奖完毕?
然后update中
#是否按下了停止键
@stop? = true if Mouse.click?(1) && 自己的按钮判定
#是否点了停止的按钮
if @stop?
@time -= 1
a += 1 if @time == 150 #等待50帧,然后推进1
a += 1 if @time == 100#等待50帧,然后推进1
a += 1 if @time == 40#等待60帧,推进1
if @time == 0
a += 1 #等待最后40帧,最后确定现在的位置
@end? = true
end
else
a += 1 #
end
#如果结束了摇奖
if end?
$game_party.gain_item(@item_list[(a%25)].id,1)#加入a位置的物品1个
$scene = Scene_Main.new#返回地图场景
end
问题三更是简单极了= =
既然@item_list已经拥有了这些物品的对象,指上去以后根据你绘制精灵的X,y,宽度,高度,就可以准备的判定选择的是那个编号的,然后@item_list[x]就是这个物品对象
更详细的看看帮助文档吧 RPG::Item 就是Item的所有参数 比如你要获得物品的名称就是@litem_list[x].name ,@item_list[x].price 就是这个物品的价格等等
另外一说,这就是个思路= = |
|