famo.us 3D游戏引擎初探

11 篇文章 0 订阅
10 篇文章 0 订阅

好久之前就看到了famo.us的优良特性,尤其是它避开浏览器弊病的跳跃思维,再加上自己使用JQM来开发Web App时的页面切换的白屏bug,又比对了sencha touch,最后还是决定将famo.us作为开发框架,它是基于浏览器的,目标就是使页面呈现性能最大化,而我不会拿它来做游戏,只是做简单的WebApp,要的就是这个界面显示性能。

但悲剧的是国内没有关于famo.us的教程,近些日子Google被天朝打压的挺惨,幸运的是famo.us官网还是可以访问的,所以以下的学习结果都来自官网http://www.famo.us/,并且famo.us针对开发者是免费开源的,所以不用担心费用问题。


famo.us的基本信息

famo.us不同于以往的HTML,是通过Javascript来驱动进行页面的渲染和切换,HTML的页面结构是通过DOM,而famo.us是通过它自己的渲染树来进行页面的结构布局,这是它与HTML的区别




famo.us的官方教程

官网提供了一个famo.us的教程,链接地址为http://www.famo.us/university,提供了一系列的demo,所见即所得的编辑器和效果,助于学习。




本人总结的学习教程

需要什么?

一共需要6个文件,5个JS文件+一个CSS文件,可以在官网下载的demo文件中找到

文件结构是怎样的?

需要的库文件已经准备好了,现在如何来使用呢?首先可以在项目中新建几个文件夹

项目名称叫做famous,css文件用于放css文件,famous_libs是放了上面的6个库文件,images中放了项目中将来会使用的图片文件,js放将来会使用的js文件,src是一个比较新奇的文件夹,里面放置了页面布局的js文件(一会儿通过一个小例子了解这个src的作用吧)。

来个小例子吧

①在项目根目录中新建一个index.html文件,这里面需要做一个简单的H5基本文档,并且需要在<head>中引入famo.us的库文件,最后需要引入src文件夹中的一个一会儿需要处理的JS文件

index.html

[html]  view plain copy
  1. <!DOCTYPE HTML>  
  2. <html>  
  3.     <head>  
  4.         <title>famo.us App</title>  
  5.         <meta name="viewport" content="width=device-width, maximum-scale=1, user-scalable=no" />  
  6.         <meta name="mobile-web-app-capable" content="yes" />  
  7.         <meta name="apple-mobile-web-app-capable" content="yes" />  
  8.         <meta name="apple-mobile-web-app-status-bar-style" content="black" />  
  9. <span style="white-space:pre">    </span><!--  引入 famo.us 库文件  START    -->  
  10.         <!-- shims for backwards compatibility   向后兼容的文件-->  
  11.         <script type="text/javascript" src="famous_libs/functionPrototypeBind.js"></script>  
  12.         <script type="text/javascript" src="famous_libs/classList.js"></script>  
  13.         <script type="text/javascript" src="famous_libs/requestAnimationFrame.js"></script>  
  14.   
  15.         <!-- module loader 模式加载    -->  
  16.         <script type="text/javascript" src="famous_libs/require.js"></script>  
  17.   
  18.         <!-- famous    famous核心文件    -->  
  19.         <link rel="stylesheet" type="text/css" href="famous_libs/famous.css" />  
  20.         <script type="text/javascript" src="famous_libs/famous.min.js"></script>  
  21. <pre name="code" class="html"><span>    </span><!--  引入 famo.us 库文件  END   -->  
<script type="text/javascript"> require.config({baseUrl: 'src/'}); require(['index']);//这里引入页面布局的那个在src文件夹中的index.js文件 </script> </head> <body></body></html>

 
②配置页面布局文件 index.js 
 

HTML文件已经准备好了,会发现我们的这个index.html的<body>中并无任何内容,那么这个页面该怎么添加进去,实际上就需要通过JS来实现了,现在需要处理一下index.js了,在src文件件中新建index.js文件。

index.js

[javascript]  view plain copy
  1. define(function(require, exports, module) {  
  2.     //引入需要使用的famo.us模块  
  3.     var Engine = require('famous/core/Engine');  
  4.     var Surface = require('famous/core/Surface');  
  5.     //创建一个界面容器  
  6.     var mainContext = Engine.createContext();  
  7.     //创建需要现实的内容  
  8.     var firstSurface = new Surface({  
  9.       content: 'hello world <br/><h2>FAMO.US</h2>'  
  10.     });  
  11.     //将创建的内容添加到界面容器中  
  12.     mainContext.add(firstSurface);  
  13. });  

③见证效果吧


PS:这个简单的小例子当然无法观察到famo.us的强大,具体可以到官网查看。


这里面最最核心的就是index.js了,会发现其中

[javascript]  view plain copy
  1. var firstSurface = new Surface({  
  2.       content: 'hello world <br/><h2>FAMO.US</h2>'  
  3.     });  

创建了一个Surface的对象,实际上这个Surface可以映射到HTML标签中的<div>,famo.us已经为我们封装好了






目前本人也就是刚刚接触到这,接下来还要继续学习,后期会完善。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
3D游戏引擎编程-3D.Game.Engine.Programming.pdf,作者:Stefan Zerbst & Oliver Duvel,本书是英文版,大小 271 MB,被压缩成两部分分别上传。这是第一部分,第二部分下载地址:http://download.csdn.net/source/2697012。 IT业中游戏业最吃香?为什么呢?大家说有多少网民没有玩过游戏?不过中国游戏人才也是缺啊!看看盛大为了招收人才自己到各个大学去招收计算机本科生啊!中国最大的游戏公司竟然自己去招收人才,可想而知啊!!中国游戏人才到底缺多少!我们缺的不是玩游戏的,而是做游戏的!大家想必都有过要自己做游戏的梦想吧?为什么没有实现呢?因为觉得自己办不到?错!你能办到!从现在开始吧!我们一起将韩国泡菜赶出国门!一起努力实现中国第一个暴雪公司!创造中国自己畅销全世界的游戏!以中国的武侠魅力去震撼世界!我们不要让外国人牵着鼻子走! 我们技术上比不过美国,美工上比不过日本,创意上比不过韩国!我们有什么可以自豪的呢?中国游戏产业的振兴就靠我们这一代,不要让我们的下一代都只玩美国的XBOX,日本的PS,韩国的传奇!我们看到了中国游戏业这块大蛋糕已经让外国瓜分的剩不下多少了!中国的公司为了代理外国的一个游戏争的头破血流!这样的事情不要让他们再一次次重演了! 游戏开发职业虽然含金量较高,但从业门槛也高高在上,因此,学习前一定要先看看自己是否适合这一职业。判断标准主要有以下七点:一看学历,一般需有大专以上的教育背景;二看年龄,游戏业是年轻人的行业,18-35岁是最佳年龄段;三看逻辑性,从业人员除具备IT基本知识外,还要有相当强的逻辑能力,否则将难以担当复杂的编程工作;四看知识面,游戏软件开发设计编剧、美术、音乐、动画、程序等诸多方面,知识面宽泛;五看创新能力,游戏开发需要经常翻花头,对开发者创新能力的要求较高;六看合作能力,游戏软件开发往往由一个小组负责,需要开发者有团队合作精神;七看兴趣,游戏开发是一项异常枯燥的工作,如果对此没有足够的兴趣,将很难做好。 发布的这些书都是原版的英文书籍,没有中文的,因为中文翻译的慢!大家如果想从事游戏开发,我真的建议大家先学英语,英语是你一切的一切的基础!大家也可以下载一个金山词霸来边翻译边看!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值