庆祝卫星游戏工作室成立四周年

卫星游戏工作室已经成立四年了。从《六一传说》到《尘封的记忆》,从《圣龙传说》到《龙印传说》,我们经历了成员离开,网站关停、开发停滞等困难,逐渐变得更成熟,更有信心去完成真正属于我们自己的游戏作品。

请各位继续期待我们开发中的《龙印传说》。相信这部几乎代表着工作室历程的作品不会让人失望。

 

失落的乐章

2015年7月31日

更多

判断RM窗口是否处于全屏状态

module Graphics
  #取得窗口句柄
  HWND = Win32API.new('user32','GetActiveWindow',nil,'l').call
  def self.fullscreen?
    #取得窗口范围矩形
    window_rect = "\0" * 16
    Win32API.new('user32','GetWindowRect',['l','p'],'i').call(HWND,window_rect)
    wl,wt,wr,wb = window_rect.unpack('llll')
    #取得客户区矩形
    client_rect = "\0" * 16
    Win32API.new('user32','GetClientRect',['l','p'],'i').call(HWND,client_rect)
    cl,ct,cr,cb = client_rect.unpack('llll')
    wr - wl == cr
  end
end

使用时:

Graphics.fullscreen?    #当游戏处于全屏状态时返回true, 否则返回false

原理:使用GetWindowRect 和GetClientRect 分别取得游戏窗口的整个范围矩形和客户区矩形。游戏全屏后,由于不再存在边框,这两个矩形就是相等的。而在窗口模式下,客户区矩形会小一些。

更多

使用OCRA将Ruby程序打包为EXE

OCRA(OneClick Ruby Application Builder)是一个将.rb文件打包为可执行文件的gem,生成的EXE可脱离Ruby环境运行。其原理是将Ruby程序运行所需的解释器、gems等全部打包“带走”。
首先按常规方法安装OCRA:

gem install ocra

 

常用参数:

--windows 不显示控制台(rubyw.exe)
--console 显示控制台 (默认,ruby.exe)
--dll dllname 包含Ruby的bin目录中指定的DLL
--no-lzma 打包时禁用LZMA压缩
--quiet 不显示打包进度
--help 查看ocra帮助
--no-autoload 不包含脚本中autoload的项目
--icon 用自定义的ico替换掉默认的红宝石图标

 

命令行下切换到文件所在目录,运行:

ocra --console name.rb

 

耐心等待一段时间后EXE文件就生成了。

更多

FizzBuzz问题

“FizzBuzz”是英国学校里常玩的一个游戏:从1数到100,但数到3的倍数时要说”Fizz”,5的倍数”Buzz”,既是3的倍数又是5的倍数说”FizzBuzz”。

现在用Ruby写一个程序打印1到100这些数字。但是遇到数字为3的倍数的时候,打印“Fizz”替代数字,5的倍数用“Buzz”代替,既是3的倍数又是5的倍数打印“FizzBuzz”。
通常会采用求余的办法解决,并不困难。

for i in 1..100
	if i%3 == 0 and 1%5 == 0
		print "FizzBuzz\n"
	elsif i%3 == 0
		print "Fizz\n"
	elsif i%5 == 0
		print "Buzz\n"
	else
		print "#{i}\n"
	end
end
更多

世界,你好!

欢迎使用WordPress。这是系统自动生成的演示文章。编辑或者删除它,然后开始您的博客!

更多