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

Project1

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

[推荐问答] 关于退出游戏时执行一些命令

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
346 小时
注册时间
2010-12-12
帖子
246
跳转到指定楼层
1
发表于 2012-2-25 22:54:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我希望能实现以下的这些效果:
在玩家按下游戏窗口的关闭按钮或者按下CTRL+F4的时候,可以像GALGAME一样,出现一个窗口并询问是否真的要退出。

点评

是Alt加F4  发表于 2012-2-25 23:32

Lv2.观梦者

梦石
0
星屑
508
在线时间
1478 小时
注册时间
2011-9-17
帖子
1316

开拓者贵宾

2
发表于 2012-2-26 00:11:02 | 只看该作者
搬来的答案:
  1. if true  #true为使用,false为不使用,可以使用开关
  2. def exit(i=0)
  3. name="窗口标题"   #提示标题,可不填
  4. $scene = nil if options("是否要退出游戏?",name)
  5. end
  6. end
  7. def options(text,name="")
  8. @ask1 = [text,name]
  9. @ctext = Array.new
  10. @m2w = Win32API.new('kernel32', 'MultiByteToWideChar', 'ilpipi', 'i')
  11. @w2m = Win32API.new('kernel32', 'WideCharToMultiByte', 'ilpipipp', 'i')
  12. @msgbox = Win32API.new('user32', 'MessageBox', %w(p p p i), 'i')
  13. @wsm = Proc.new{|i|
  14.         len = @m2w.call(65001, 0, i, -1, nil, 0)
  15.         buf = "\0\0" * len
  16.         @m2w.call(65001, 0, i, -1, buf, buf.size/2)
  17.         len = @w2m.call(0, 0, buf, -1, nil, 0, nil, nil)
  18.         @ctext.push "\0" * len
  19.         @w2m.call(0, 0, buf, -1, @ctext.last, @ctext.last.size, nil, nil)
  20.         }
  21. [@ask1].flatten.each{|i| @wsm.call(i)}
  22.   def self.warning
  23.     1.times{|j| j == 0 ?((yield @ctext[0], @ctext[1]) == 1 ? (return true) : (return false)):( return false)}
  24.   end
  25.   return self.warning{|a,b| @msgbox.call(0, a, b, 1) }
  26. end
复制代码
脚本使用了API,不适合新人学习,也就不讲解了,只说说
exit这个方法,是可以重定义的,并且注意它带有一个参数
我帖子中要有是不HX的空白,请Ctrl + A
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
346 小时
注册时间
2010-12-12
帖子
246
3
 楼主| 发表于 2012-3-4 10:54:21 | 只看该作者
iisnow 发表于 2012-2-26 00:11
搬来的答案:脚本使用了API,不适合新人学习,也就不讲解了,只说说
exit这个方法,是可以重定义的,并且注 ...

虽然很好,不过有的时候配上游戏的气氛,这样的话未免有点尴尬。很想显示一张半身像在旁边
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-27 15:17

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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