本来想做个视频,可是一直没有时间,一直在拖着,有很多朋友想看源码,呵呵  我就把引擎的源码传上来好了。因为当时是为了学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之间的一个整数,表示当前物体所在图层,图层高的将覆盖图层低的  

 

如此,我们可以生成一个简单的花的类,只需如下几行代码即可

 

Flower

 

 

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 背单词的软件,欢迎使用


 


 


 

 

 

 

 

 

 


 



posted on 2008-12-08 21:49  feathersky  阅读(3902)  评论(5编辑  收藏  举报