以下代码为判断鼠标 在 精灵内 和 获取 鼠标像素颜色是否在精灵图片上 , 只可参考
#已知$mx为鼠标x坐标, $my为鼠标y坐标 @按钮_位图为一个精灵 if ($mx >= @按钮_位图.x and $mx <= @按钮_位图.x+@按钮_位图.bitmap.width) and ($my >= @按钮_位图.y and $my <= @按钮_位图.y+@按钮_位图.bitmap.height) x_b = @按钮_位图.x-$mx y_b = @按钮_位图.y-$my pixel = @按钮_位图.bitmap.get_pixel(x_b.abs,y_b.abs) if pixel == Color.new(0,0,0,0) or pixel == Color.new(255,255,255,0) return #除了透明像素之外, 在精灵图大小以外的地方也会判断会另一种颜色, 因此不只一种 , 则满足为不在精灵图片之上
#已知$mx为鼠标x坐标, $my为鼠标y坐标 @按钮_位图为一个精灵
if ($mx >= @按钮_位图.x and $mx <= @按钮_位图.x+@按钮_位图.bitmap.width) and ($my >= @按钮_位图.y and $my <= @按钮_位图.y+@按钮_位图.bitmap.height)
x_b = @按钮_位图.x-$mx
y_b = @按钮_位图.y-$my
pixel = @按钮_位图.bitmap.get_pixel(x_b.abs,y_b.abs)
if pixel == Color.new(0,0,0,0) or pixel == Color.new(255,255,255,0)
return
#除了透明像素之外, 在精灵图大小以外的地方也会判断会另一种颜色, 因此不只一种 , 则满足为不在精灵图片之上
顺序之前我也想了很久 , 好像在编程肯叫 "队列" (关键字) 或者搜 "数组队列" , 不过我自己看不懂
想知道生成顺序, 我方法是用一个数组用于 单独 纪录顺序, 生成精灵时使用push把标识加入到数组里, 这样在顺序越后的为越新 再用for循环偏历"纪录顺序数组"可知道哪个精灵是新旧, 如果"纪录顺序数组" 内顺序有变化, 也可以把数组内顺序进行对调
|