你看上去它是连续,流畅的画面。 其实,其实它是一帧一帧的, 举个例子差扰余吧,OpenGL 这样的3D引擎,它的绘画基本原理是基于“照相” 。
说这些是想说,所有动态的画面都是由一张张的 图组合起来的,只要刷新速度足够快,看上去就像是电影或者动画了李稿。。
比如你程序画的小车,最简单的动画。。你画的时候,先设定一个 坐标起始点 x,y。。然后具体绘画的算法里,都以这个 x和y做基准。。然后有一个线程来 控制 x和y的值,注意,是缓慢的修改 x和y。。然后同时不停的让 程序重新绘制。比如设置周虚滚期,一秒钟20次。。
这样你就可以看到小车在屏幕上移动了 而移动的方向 和 x y 的值是有关的。
小程序就用小程序做法,画几个地图,自己下载也行,保存在一个文件夹里,你也可以把文件夹加壳,这个代码有点多,初学你就保存在bin目录一个文件夹就行了。载如地图就是加载图片,图片放在pictrueBox中,pictrueBox尺寸设置为图片实际尺寸,图片实际尺寸画携搜成一个关卡从出发点到终点全部画全了,小车也放在一个pictrueBox里面,背景抽成透明(实际上小车每一种状态都存放一个图片,当快截键或者 *** 作改变状态时就加载gif动画图片,你就看到小车象是在动)。
控制运动方向是个相对运动原理,地图图片象下移动top值按加速事件变化递增,小车图片左右移动。这样你就象是看到车子在想前走,一路披靡。
timer做计时器,加速的时候timer的intaver变化,车子和地图移动速度就会变化。
设置关卡,一个地图跑完你要继续下一个或者开始结束提示。
最后一个是最关键的要素,设置障辩晌历碍物,设置路段坐标,哪是路哪是边界你要搞清楚,我们用XML或者数据库记录几个障碍物坐标就好了,路边界是有规律的,平均记录几个横向边距,通过横向边距给路边定宽度,你知道左边路边坐标,就知谨绝道路的边界。最精确的方法,是再覆盖一个透明图片,判断小车图片非透明部分路段图片。
其实一般我们都是导入模型用DirectX或者调用flash控制flash参数去做,但这样比上面我介绍的难度大。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)