Project1
标题:
鼠标卷屏效果
[打印本页]
作者:
幻の飞鱼
时间:
2007-6-28 05:17
标题:
鼠标卷屏效果
自己的《断指守卫》需要这个效果就做了
MS以前看到有人要,也不知道有人做过没
自己做的时候才发现,原来这么简单就可以了- -||寒一下
使用的时候还需要配合一个鼠标脚本,主战上任何一个脚本似乎都可以
范例:
http://rpg.blue/upload_program/files/鼠标卷屏.rar
class Scene_Map
alias old update
def update
@by = 32 #感应鼠标边缘的范围
@speed = 64 #移动速度
mx,my = Mouse.get_mouse_pos
move_r if mx>640-@by
move_l if mx<@by
move_u if my<@by
move_d if my>480-@by
old
end
def move_r
$game_map.scroll_right(@speed)
end
def move_l
$game_map.scroll_left(@speed)
end
def move_u
$game_map.scroll_up(@speed)
end
def move_d
$game_map.scroll_down(@speed)
end
end
复制代码
作者:
幻の飞鱼
时间:
2007-6-28 05:17
标题:
鼠标卷屏效果
自己的《断指守卫》需要这个效果就做了
MS以前看到有人要,也不知道有人做过没
自己做的时候才发现,原来这么简单就可以了- -||寒一下
使用的时候还需要配合一个鼠标脚本,主战上任何一个脚本似乎都可以
范例:
http://rpg.blue/upload_program/files/鼠标卷屏.rar
class Scene_Map
alias old update
def update
@by = 32 #感应鼠标边缘的范围
@speed = 64 #移动速度
mx,my = Mouse.get_mouse_pos
move_r if mx>640-@by
move_l if mx<@by
move_u if my<@by
move_d if my>480-@by
old
end
def move_r
$game_map.scroll_right(@speed)
end
def move_l
$game_map.scroll_left(@speed)
end
def move_u
$game_map.scroll_up(@speed)
end
def move_d
$game_map.scroll_down(@speed)
end
end
复制代码
作者:
神思
时间:
2007-6-28 06:11
其实可以把ClipCursor这个函数给考虑进去``这样鼠标就不会离开窗口了`
class String
MultiByteToWideChar = Win32API.new("kernel32", "MultiByteToWideChar", "llplpl", "l")
WideCharToMultiByte = Win32API.new("kernel32", "WideCharToMultiByte", "llplplpp", "l")
CP_ACP = 0
CP_UTF8 = 65001
#--------------------------------------------------------------------------
# ● UTF-8转JIS
#--------------------------------------------------------------------------
def to_jis
# UTF-8 -> Unicode
len = MultiByteToWideChar.call(CP_UTF8, 0, self, -1, nil, 0);
buf = "\0" * (len*2)
MultiByteToWideChar.call(CP_UTF8, 0, self, -1, buf, buf.size/2);
# Unicode -> S-JIS
len = WideCharToMultiByte.call(CP_ACP, 0, buf, -1, nil, 0, nil, nil);
ret = "\0" * len
WideCharToMultiByte.call(CP_ACP, 0, buf, -1, ret, ret.size, nil, nil);
return ret
end
end
# 窗口名字
WindowClassName = "鼠标卷屏".to_jis
ClipCursor = Win32API.new("user32", "ClipCursor", "p", "l")
ClientToScreen = Win32API.new("user32", "ClientToScreen", "lp", "l")
FindWindow = Win32API.new("user32", "FindWindow", "pp", "l")
HWnd = FindWindow.call("RGSS Player",WindowClassName)
xy = [0, 0].pack("l*")
ClientToScreen.call(HWnd, xy)
x,y = xy.unpack("l*")
rect = [x, y, 640+x, 480+y].pack("l*")
ClipCursor.call(rect)
class Scene_Map
alias old update
def update
@by = 32 #感应鼠标边缘的范围
@speed = 64 #移动速度
mx,my = Mouse.get_mouse_pos
move_r if mx>640-@by
move_l if mx<@by
move_u if my<@by
move_d if my>480-@by
old
end
def move_r
$game_map.scroll_right(@speed)
end
def move_l
$game_map.scroll_left(@speed)
end
def move_u
$game_map.scroll_up(@speed)
end
def move_d
$game_map.scroll_down(@speed)
end
end
复制代码
另外```LZ进步的飞快啊````{/qiang}{/qiang}
作者:
幻の飞鱼
时间:
2007-6-28 07:45
谢了,偶抛砖引玉了,收回去加工游戏去
不过那个ClipCursor又是API啊,完全看不懂- -||{/gg}
PS:点不到最小化和X了,不过似乎不是大问题,都可以用键盘代替
作者:
弗洛多
时间:
2007-6-28 07:46
提示:
作者被禁止或删除 内容自动屏蔽
作者:
莫浪语
时间:
2007-6-28 11:02
别吓我 ,我的即使战略{/se}
作者:
beiduo
时间:
2007-7-2 18:42
非常实用的脚本,谢谢!
作者:
墨霖
时间:
2008-1-31 22:00
{/pz}花眼了~~~
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1