|
|
我在做游戏的时候(oop),总是会把各个引擎封装成类,然后提供多个接口给sprite使用(2d),这个时候在外面的逻辑就会控制很多sprite的各个属性:坐标,帧号数等等,
GameMain()
{
GetInput();//用户输入
Judge(); //物理,AI等逻辑判断
MoveSprite(); //移动或是Animation
//图像
BlitThem(); //..
Display(); //...
ClearScreen();//...
}
这就是一个循环所要大概结构,如果脚本加入的话一般是在Judge()着一个函数里面,可是怎么加入呢?
给脚本函数传递一些什么东西呢? 是鼠标点击的位置,当前sprite的帧号,还是sprite的位置也要?
一般来说要一个脚本要判断自己和周围各个sprite的关系,这些关系及其复杂,比如位置还有很多属性,如果这些都要当作参数的话,画面中有100个sprite,怎么办?
如果把这些都纳入脚本的话,GameMain只要:
GameMain()
{
CallScript();
BlitThem();
Display();
ClearScreen();
}
那这样的话,A*,rect collision,chase etc.这些很恐怖的CPU密集型算法都要用解释性语言执行,那岂不....
实在不明白.....
不知道有没有那位niu人在真正的项目里面做过,商业脚本是怎么和游戏引擎配合的,只要指点一两句就可.
还有谁能介绍一两本好书给我,<<game scripting mastery>>我已经开过了(tsinghua,黑皮) ,只是没有讲述其他的方面,他就是把一个demo的所有东西(除了图像引擎) 都放到了script里面.
[em7] |
|