|

楼主 |
发表于 2006-4-3 10:59:00
|
显示全部楼层
Re:想在 DELPHI 中使用超级游戏脚本 LUA 吗?
后来封装了一下ALLEGRO游戏库到LUA,封装了基本部分和BITMAP、GRAPHICS、KEYBOARD、MOUSE、BLIT、DRAW的一部分后,感觉要封装的东西还很多,所以暂时没有继续封装了。完成后的LUA测试脚本如下:
如果你以前用过ALLEGRO游戏库的话,应该能能看懂;)
allegro = create_object("TAllegro"); // 创建基本对象
graphics = create_object("TGraphics"); // 创建图形(初始化图形模式等)
mouse = create_object("TMouse"); // 创建鼠标对象
keyboard = create_object("TKeyboard"); // 创建键盘对象
allegro.install(SYSTEM_AUTODETECT); // 安装ALLEGRO系统
keyboard.install(); // 安装键盘
mouse.install(); // 安装鼠标
allegro.set_window_title('Hello Allegro!'); // 设置ALLEGRO窗口标题
graphics.set_color_depth(16); // 设置色彩深度为16BIT
graphics.set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0); // 设置DIRECTX窗口模式 640*480
screen = create_object("TBitmap", "screen"); // 创建屏幕位图(SCREEN代表屏幕位图)
mysha = create_object("TBitmap", "./data/mysha.pcx"); // 创建位图,从PCX文件中载入位图数据
sub = create_object("TBitmap"); // 创建一个空的位图(没有数据)
sub.create_sub(mysha, 100, 100, 50, 50); // 从MYSHA位图中创建子位图
mouse.show(screen); // 显示鼠标指针
draw = screen.draw_sprite; // 引用屏幕位图的绘图函数
while not keyboard.key(59) do
draw(mysha, math.random(255), math.random(255)); // 随机绘制MYSHA,相当于screen.draw
sleep(1); // 空闲时间将CPU使用权交给系统,不调用该函数将使程序的CPU占用率保持%99以上
end;
allegro.exit(); // 退出ALLEGRO
quit(); // 结束程序。
|
|