LimeJS指南0

开始

安装

windows用户:请按照README文件的安装向导安装

limeJS的开发需要[Python 2.6+](http://www.python.org/),
[Git](http://git-scm.com/download) and
[Subversion](http://subversion.apache.org/) or Git-SVN.如果你想使用Closure
Compiler,还需要[Java](http://www.java.com/en/) 。一旦你有了建好的游戏,就说明没有特别需要的分发服务器。

从[github](http://github.com/digitalfruit/limejs)上下载资源。文件包括Javascript源文件(在
lime/里面)和一个Python命令条工具帮手(lime.py)在bin/ directory里面。

通过运行以下命令,检查CLI功用的特性

#!Bash
bin/lime.py --help

你将看到功用可以处理初始的安装,从属更新,工程创建,样本生产和工程构建。

通过运行初始安装以开始:

#!Bash
bin/lime.py init

这将下载[Closure Library](http://code.google.com/closure/library/),[Box2D physics
library](http://box2d.thinkpixellab.com/),[Closure
Compiler](http://code.google.com/closure/compiler/)和[Templates](http://code.google.com/closure/templates/),并使它们正确安装于是它们能够正常使用。

你完成了!运行以下命令以创建一个简单的helloword工程

#!Bash
bin/lime.py create helloworld

用浏览器打开helloword/helloword.html

## Common Closure

LimeJS是用Closure程序库构建的。Closure是Google用JavaScript构建的,它被用于许多Google的大工程如Gmail和Docs的开发。它具有很高的可持续性和可读性,快速并且特性丰富。它也与其他Closure工具如Compiler和Templates整合得很好。

### 命名空间

Closure的最引人注目的特性之一就是它命名空间系统。不像一些其他程序库所有代码在文件与文件之间分开,每个文件为它的代码提供了名字并且可以继承一些其他文件。在开发程序时你只需要有*base.js*的文件以格尼新的函数‘goog.provide(namespace)’和‘goog.require(namespace)’。provide函数声明所欲代码可用这个名字继承。require函数要求此名字的文件。整个系统与其他有命名空间的语言很相似(Java,ActionScript,Python),不同的是,命名不需要指明文件夹位置,可以随意放置。Closure使用内部的*deps.js*文件以标明命名空间的文件路径。这意味着如果你添加新的命名空间你得执行

#!Bash
python bin/lime.py update

以更新*deps.js*,以使你的新文件得以运行。

在你自己的工程文件中使用goog.provide()不是必要的,但是我们推荐你这么做。使用这种方式汇编你的游戏也将使你获得更好的结果。

### 继承

用LimeJS工作时,一项最常做的事就是在一个内建的类中建一个自定义类。这样,你能够将你的自定的游戏中的特定方法加到一般对象上。这是一个*lime.Circle*的子类*mygame.Ball*的例图

#!JavaScript
// make file loadable from other
files
goog.provide(‘mygame.Ball‘);
// request that lime.Circle‘s
definitions are loaded
goog.require(‘lime.Circle‘);
// new
constructor
mygame.Ball = function(){
// call parents constructor

goog.base(this);
// custom initialization code
this.color_ =
‘red‘;
}
// define parent class
goog.inherits(mygame.Ball,lime.Circle);

// new custom method for ball instances
mygame.Ball.prototype.myMethod =
function(){
}

### 事件

Closure将用于对象的监听与非监听的事件提供给了你。你可以添加一个事件以函数
‘goog.events.listen(src, type,
listener, opt_capture,
opt_handler)’。
src是添加事件的对象,
type是事件名称(比如mousedown),
listener是回调函数,在事件触发时被调用
You
can also make the event fire in capture phase and define custom context object
for callback function.
移除事件监听使用名为有着所有相同参数的‘goog.event.unlisten()’。

如果你希望dispatch events from your custom
object,你需要让他们作为*goog.events.EventTarget*的子类,并调用对象的‘dispatchEvent()’方法。

*There is much more you could know about Closure Library, check out the
[docs](http://closure-library.googlecode.com/svn/docs/index.html),
[book](http://www.amazon.com/Closure-Definitive-Guide-Michael-Bolin/dp/1449381871)
or [video](http://www.youtube.com/watch?v=yp_9q3tgDnQ) for more
information.*

时间: 2024-10-11 04:28:33

LimeJS指南0的相关文章

LimeJS指南5

# 动画 动画提供一个随着时间改变元素属性方法.典型的用处就是自然而然地使对象变大或改变它 的位置.要做一个动画,你得新建一个动画对象,然后在目标对象上运行它.不要忘了你得 用‘goog.require()’,因为没有什么动画是自动载入的.默认情况下所有动画运行时长为 1秒钟,你可以用‘setDuration()’的方法来改变它. #!JavaScript var fadehalf = new lime.animation.FadeTo(.5).setDuration(2); ball.runA

LimeJS指南2

# Layout和nodes ## 调整大小和方位变化 在LimeJs中,支持不同的屏幕大小和视口大小的变化很容易,都是自动调好的.在Director的构造中(或在*setSize*方法中),但是这不需要与实际的屏幕大小相适应.你的游戏的实际大小是从你游戏所在的容器DOM元素中得到的.如果容器对象的大小改变,你的游戏也会调整大小以填充容器.注意虽然你的游戏的比例改变,你的游戏的坐标将仍然反应你的做出的舞台大小所以你可以完全忽略它. ## 全屏游戏 默认的工程样板直接在body元素内部初始化Dir

LimeJS指南3

# 形状与填充 ## Sprites 前几章我们学习了关于node的类.虽然node是LimeJS中最重要的类,但是你几乎从不创建一 个node.我们可以创建sprite,sprite是矩形的显示对象.它的外观可以通过方法 *setFill(fill)*来添加,所有node的函数在sprite和其它形状都可以使用.这也包括添加 子sprite. #!JavaScript var redsquare = new lime.Sprite().setSize(50,50).setFill ('#c00

LimeJS指南1

# 时间轴 ## director 一切从director开始.director是一个每个游戏所需要的基本对象,它连接所有网页上的Limejs逻辑到单个地方.如果你来自flash世界你可以把它当做一个舞台,Cocos2d用户可以当做Cocos2d-s自己的director.所有其他人可以把它当做一个前部的控制者. 每一个游戏只有一个director的例图.它操控游戏的全程视口,控制屏幕上的可见物.在你的逻辑涌现之初你得创建一个director的例图.构造函数的方法的参数是container DO

LimeJS指南6

# 绘图引擎 LimeJS的一个最重要的特性就是支持不同的渲染引擎.也许不应该叫LimeJS一个Canvas 游戏框架,因为Canvas只是它所支持的一个较低的技术.有画图能力的较低的方法集中在在命名空间*lime.Renderer*.不同的渲染可以在任何时候通过方法*setRenderer(renderer)*在任何Node之间切换.现在LimeJS中支持的渲染有*lime.Renderer.DOM*和*lime.Renderer.CANVAS*. ## 为什么需要许多渲染 也许你的第一个想法

LimeJS指南4

# Events 在Lime中,事件的处理与Closure程序库中的差不多,你可以用‘goog.events.listen(src, type, listener, opt_capt, opt_handler)’添加事件监听,用‘goog.events.unlisten (src, type, listener, opt_capt, opt_handler)’取消监听,目标对象(src)就是你经 常用的node元素.事件类型(tpye)是就是你一般情况下添加到你的DOM元素上的东西:通 常有*m

LimeJS指南7

# Building 如果你已经完成之前的例子你可能会想在[Firebug](http://getfirebug.com/)或Webkit开发者工具看看内部是怎样的.在结果表格中看到的也许不能够使你满意.甚至Hello World的例子需要许多不同的Javascript文件加载,而且它们的总大小很大.不像[YSlow](http://developer.yahoo.com/yslow/)或者[Google Page Speed](http://code.google.com/speed/page

正确洗衣指南0.1

二轻所的洗衣机竟然摆在女洗澡间,作为有追求的青年当然应该手洗衣服,当然应该掌握生存的正确方法 所以一桶水是冲一次比较干净呢,还是分几次比较干净 假设衣服上的脏东西(简称脏)有m g 一桶水 V L;冲水次数 n ;衣服残余水分Vl ;脏的溶解度为s; 如果一桶水一次性冲了,为了简单,假设脏全部溶解了好了,那么剩余的脏R为: Vl*m/V 如果n次冲完剩余脏R1: R1=Vl*m/(V/n) 第二次冲完: R2=Vl*R1/[(V/n)+Vl] ..... Rn=Vl*Rn-1/(v/n) 所以R

C++ 系列:Boost Thread 编程指南

转载自:http://www.cppblog.com/shaker/archive/2011/11/30/33583.html 作者: dozbC++ Boost Thread 编程指南0 前言1 创建线程2 互斥体3 条件变量4 线程局部存储5 仅运行一次的例程6 Boost线程库的未来7 参考资料:0 前言 标准C++线程即将到来.CUJ预言它将衍生自Boost线程库,现在就由Bill带领我们探索一下Boost线程库.就在几年前,用多线程执行程序还是一件非比寻常的事.然而今天互联网应用服务程