赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 31 |
经验 | 7539 |
最后登录 | 2019-9-30 |
在线时间 | 200 小时 |
Lv3.寻梦者
- 梦石
- 3
- 星屑
- 65
- 在线时间
- 200 小时
- 注册时间
- 2008-7-8
- 帖子
- 180
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
想写一个会随光标位置改变而在0.8倍和1倍之间来回变动的按钮,目前大概是这样
def button_zoom(sprite,x,y,k=1) if sprite.x != x sprite.x = sprite.x < x ? sprite.x += 1 : sprite.x -= 1 end if sprite.y != y sprite.y = sprite.y < y ? sprite.y += 1 : sprite.y -= 1 end if sprite.zoom_x != k sprite.zoom_x = sprite.zoom_x < k ? sprite.zoom_x += 0.01 : sprite.zoom_x -= 0.01 end if sprite.zoom_y != k sprite.zoom_y = sprite.zoom_y < k ? sprite.zoom_y += 0.01 : sprite.zoom_y -= 0.01 end end def slidefx if $stopmove == 1 case @command_window.index when 0 button_zoom(@sprite_enter,140,140) button_zoom(@sprite_save,150,200,0.8) button_zoom(@sprite_exit,160,250,0.8) @sprite_index.x = 140 @sprite_index.y = 140 when 1 button_zoom(@sprite_enter,140,150,0.8) button_zoom(@sprite_save,150,200) button_zoom(@sprite_exit,160,250,0.8) @sprite_index.x = 150 @sprite_index.y = 200 when 2 button_zoom(@sprite_enter,140,140,0.8) button_zoom(@sprite_save,150,200,0.8) button_zoom(@sprite_exit,160,260) @sprite_index.x = 160 @sprite_index.y = 260 end end end
def button_zoom(sprite,x,y,k=1)
if sprite.x != x
sprite.x = sprite.x < x ? sprite.x += 1 : sprite.x -= 1
end
if sprite.y != y
sprite.y = sprite.y < y ? sprite.y += 1 : sprite.y -= 1
end
if sprite.zoom_x != k
sprite.zoom_x = sprite.zoom_x < k ? sprite.zoom_x += 0.01 : sprite.zoom_x -= 0.01
end
if sprite.zoom_y != k
sprite.zoom_y = sprite.zoom_y < k ? sprite.zoom_y += 0.01 : sprite.zoom_y -= 0.01
end
end
def slidefx
if $stopmove == 1
case @command_window.index
when 0
button_zoom(@sprite_enter,140,140)
button_zoom(@sprite_save,150,200,0.8)
button_zoom(@sprite_exit,160,250,0.8)
@sprite_index.x = 140
@sprite_index.y = 140
when 1
button_zoom(@sprite_enter,140,150,0.8)
button_zoom(@sprite_save,150,200)
button_zoom(@sprite_exit,160,250,0.8)
@sprite_index.x = 150
@sprite_index.y = 200
when 2
button_zoom(@sprite_enter,140,140,0.8)
button_zoom(@sprite_save,150,200,0.8)
button_zoom(@sprite_exit,160,260)
@sprite_index.x = 160
@sprite_index.y = 260
end
end
end
实际运行时发现按钮在不断颤抖进行微小的放大缩小,把p @sprite_exit.zoom_x 插入update跟踪发现它的缩放倍率大概是因为进行浮点运算产生误差,所以不能精确执行从1倍到0.8倍和从0.8倍到1倍的缩放循环。
这个问题应该怎么解决..... |
|