我是靠谱客的博主 故意棒棒糖,最近开发中收集的这篇文章主要介绍关于游戏引擎PushButton的教程和演示(三),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

首先,谈不上教程,我也只是把我喜欢的写给大家而已,我对Flex技术并没有什么深入的理解,只是喜欢。

我对Flash并没有比大家更多的认识(我的朋友都知道,我不过只是做些ASP.NET动态网站和进行些浏览器编程,如ExtJs,jQuery),一个偶然的想法,我打开了FlexBuilder,辗转多个网页,感谢chrome,让我找到了PushButton,以下教程的大部分内容都来自于Matthew Casperson的博客,如果你也像我一样,对PushButton或者游戏开发忽然很感兴趣,请跟着Matthew Casperson一起开始游戏之旅。

如果你需要了解PushButton,你只需要在Google上搜索flex pushbutton就能获得一个关于 PushButton的概括性介绍,比较关键的介绍是,这是一个模块化的以组件为核心的游戏引擎(在以后的开发中,您将有深刻的体会),对于网络中的些许介绍,我想声明一点的是,当前的版本为r470,我并没有发现一些博客中所提到的ProjectManager.air(这困扰了我很久),不过很快你将发现这并不影响什么。

http://pushbuttonengine.com/,官方论坛,在这里你能找到你想要的大部分,包括下载链接以及http://pushbuttonengine.com/forum/index.php,PushButton的官方论坛,社区里人们很友善,这里包括技术交流也有组件买卖。 
——————————————————————————————————————————————————————————————————
上一节我们说到了键盘控制,能让我们的下圈圈动起来,这让我着实的兴奋。那么这一节,我们让我们的圈圈消失掉,取而代之的是类似于“合金弹头”的人物造型,每一次接近于现实游戏的进步都让我感觉到兴奋,让我们看看该如何操作。
我们看一下我们原本实体里的 render组件
1  var Render:SimpleShapeRenderComponent  =   new  SimpleShapeRenderComponent(); 
2   
3   Render.showCircle  =   true ;                                            
4   Render.radius  =   25 ;                                                  
5   Render.positionReference  =   new  PropertyReference( " @Spatial.position " );    
6   
7   entity.addComponent( Render,  " Render "  ); 

 

平淡无奇,只能看出是一个圆,半径为25像素。
我们来稍微改动一下,恐怕我们再也不需要这个圆了
1  var Render:SpriteRenderComponent  =   new  SpriteRenderComponent();
2   
3   Render.loadFromImage  =   " ../media/idleright.png " ;                                                                                       
4   Render.positionReference  =   new  PropertyReference( " @Spatial.position " );    
5   
6   entity.addComponent( Render,  " Render "  ); 

 

从代码上看很容易看出我们替换成了一张图片,图片如下 ,这很酷,很“合金弹头”。

 到这可能我们预期的目的已经达到了,的确,你的想法是对的。但是,作为素材,加载的速度是很重要的,放在文件中被下载固然是一种天经地义的做法,但是在这里,PushButton提供给了我们一种新的做法,将图片加载到flash中,使加载速度更快捷(当然这是我的理解,Matthew Casperson也的的确确是这样说的,具体如何实现的,在这里我仍然无法回答,也无法验证,欢迎专家来讲解将图片加载到FLASH里的原理)。这里我将这些资源理解为嵌入式资源。

 

 1  package
 2  {
 3      import com.pblabs.engine.resource.ResourceBundle;
 4 
 5       public   class  Resources extends ResourceBundle
 6      {
 7          [Embed(source = " ../media/idleright.png " , mimeType = " application/octet-stream " )]
 8           public  var ImgIdleRight:Class; 
 9          
10      }
11  }

 

 

 很明显,com.pblabs.engine.resource.ResourceBundle的这个ResourceBundle起到了这个作用,我们看到了图片被Embed,而且还设置了mimeType.

这和重要,在以后的学习过程中,无论声音(mp3文件),图片,以至于我们未来遇到的最重要的xml都将以这种方式嵌入到我们的游戏中去。

而这些XML将构成我们以后游戏的主框架,也就是表示层和控制层相分离,这种业务分离是很重要的,无论你在从事网站开发还是其他方面的开发,都至关重要。这些将在以后的章节中介绍,现在我们将用as代码实现一个简单游戏,而后,我们将业务分离采用xml+as的方式构筑我们的游戏,这也符合大多数开发模式。

 

明天将要回学校了,就写到这。

 

DEMO浏览页面:http://www.brighthub.com/hubfolio/matthew-casperson/media/p/61010.aspx

DEMO下载页面:http://www.brighthub.com/hubfolio/matthew-casperson/media/p/61012.aspx

英文教程页面: http://www.bukisa.com/articles/226072_pushbutton-tutorial-series-loading-resources(注:该国外教程服务器不稳定,偶尔睡觉)

下一期我们将会使这个角色动起来,Animation,这是很有意思的一件事,就好比你控制的人物在空闲时候自己会擦擦枪,跑起来把枪抗在后背上?

 

感谢 Matthew Casperson,感谢无私的分享。 

 

 

 

转载于:https://www.cnblogs.com/freakshow/archive/2010/02/26/1674622.html

最后

以上就是故意棒棒糖为你收集整理的关于游戏引擎PushButton的教程和演示(三)的全部内容,希望文章能够帮你解决关于游戏引擎PushButton的教程和演示(三)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部