本来想做个视频,可是一直没有时间,一直在拖着,有很多朋友想看源码,呵呵 我就把引擎的源码传上来好了。因为当时是为了学C#而做的,很多东西写得很乱,也没有注释,暂时没时间整理了。大家先凑合着看吧,等我以后有时间做个视频讲解。下载地址 https://files.cnblogs.com/feathersky/FeatherskyGameEngine.rar
早期的游戏因为硬件落后,所以画面简单,侧重趣味
后来的画面很漂亮,但创意有时候却减弱了
估计以后随着技术的发展,画面的实现将非常容易,这时候趣味性,智能性又会变成游戏编程中的重点
故此发布一个小引擎,给乐意编编小游戏的人练手,引擎可免费使用在任何场合
本引擎主要完成图片,声音,碰撞,鼠标事件的管理,基本上能满足当前网上大部分2D游戏的需求
编写新的小游戏将非常简单,重在游戏的智能逻辑需要你自己实现
为此,举一个小例子来说明引擎的调用方法,并给了一个代码例子
在references 中添加FeatherskyGameEngine.dll
并将LifeObject.cs 和BattleObject.cs加入程序中
在文件开头 using FeahterksyGameEngine;
首先有一个LifeObject类,所有的小游戏物体需继承这个类
其中主要有参数 x,y ,direction,velocity 坐标,方向,速度
UnitID 表示物体对应的图片
SetStyle(Style_Nothing , 1);表示物体能否移动,能否响应鼠标事件,能否观察到其他物体等
// 参数一
// Style_CanObserver 可以观察其他物体
// Style_CanMove 可以移动
// Style_Nothing 什么功能没有,只能显示
// 参数二 0-3之间的一个整数,表示当前物体所在图层,图层高的将覆盖图层低的
如此,我们可以生成一个简单的花的类,只需如下几行代码即可
VirtualWorld 类, 游戏世界,负责依次调用世界中每个物体的每回合的Behave() 和Show()函数
VirtualWorld gameWorld = new VirtualWorld(width, height, 128, 128); //定义游戏世界的宽高,将游戏世界分成128×128大小的块
gameWorld.AddElementObject(flower) 即可将花加入游戏事件
显示时,我们把控件和游戏显示绑定,
//将游戏画面绑定在控件上,每隔40ms刷新一次
GameEngine.BindWorldShowControl(this.pictureBox1,gameWorld,null,null, 40, null);
然后是游戏运行程序
bool bGameOver = false;
void GameRun()
{
while (!bGameOver)
{
Thread.Sleep(30);
gameWorld.TimeGo();
}
}
如此即可完成一个小游戏的制作,非常简单,呵呵,大家可以练练手,引擎免费
代码附下https://files.cnblogs.com/feathersky/SimpleGame.zip
引擎源码附下 https://files.cnblogs.com/feathersky/FeatherskyGameEngine.rar
另有作品http://feathersky.ucoz.com/Tank/Tank.zip 背单词的软件,欢迎使用