如题。我照你说的把module加到了Object里面,但是依旧提示我method missing。
代码如下:
require 'dl/import'
module Blitz3D
extend DL::Importable
dlload "redist/B3D.dll"
BBFALSE = 0
BBTRUE = 1
KEY_ESCAPE = 1
KEY_TAB = 15
KEY_SPACE = 57
KEY_RETURN = 28
KEY_LEFTSHIFT = 42
KEY_LEFTCONTROL = 29
KEY_LEFTALT = 56
KEY_RIGHTSHIFT = 54
KEY_RIGHTCONTROL = 157
KEY_RIGHTALT = 184
KEY_UP = 200
KEY_LEFT = 203
KEY_RIGHT = 205
KEY_DOWN = 208
extern "int bbBeginBlitz3D()"
extern "void bbEndBlitz3D()"
extern "void bbGraphics(int,int,int,int)"
extern "void bbSetBlitz3DTitle(const char*,const char*)"
extern "void bbFlip(int)"
extern "int bbLoadImage(const char*)"
extern "void bbDrawImage(int,int,int,int)"
extern "void bbFreeImage(int)"
extern "int bbKeyHit(int)"
end
class Object
include Blitz3D
end
bbBeginBlitz3D
bbGraphics( 640, 480, 0, 2 )
bbSetBlitz3DTitle( "blitz3d.rb", "Sure to quit?" )
while BBTRUE != bbKeyHit( KEY_ESCAPE )
img = bbLoadImage( "game.png" )
bbDrawImage( img, 0, 0, 0 )
bbFreeImage( img )
bbFlip( 1 )
end
bbEndBlitz3D
我用 ruby -w b3d.rb 运行这个程序:
D:\src\ruby\blitz3d>ruby -w b3d.rb
(eval):2: warning: instance variable @SYM not initialized
(eval):2:in `bbBeginBlitz3D': undefined method `[]' for nil:NilClass (NoMethodEr
ror)
from b3d.rb:38
看来还是不可以……
这到底是怎么回事呢?
