(2011-08-05 19:58)

So, the headlines say somebody else has died due to video game
addiction.
Zynga 北京招聘
有意者请与我联系 Email:wyang@zynga.com
PS:在 Zynga 的感觉非常好,轻松 +
融洽,在这里你会找到适合自己的位置,充分发挥你的才能。
以下是职位介绍
Engineering
Software
Engineer – PHP
Responsibilities
We are looking for best-of-the-class PHP developers to deliver new
titles and new features on multiple social netw
1.
关于存储
- 使用适当的 Display Object
* Shape – 没有交互(占内存少)
* Sprite – 有交互(占内存多)
* MovieClip – 有时间线(占内存更多)
- 尽可能重用对象,而不要重新创建
- 强制类型转换 int(exp) 要比 Math.floor() 和 Math.ceil() 快很多
- 使用对象池技术重用对象
- 释放内存 – 将所有对象的引用设置为 null
- 尽可能重用 BitmapData
- Callback 要比 event 快而且消耗更少的内存
2. 减少 CPU
使用率
- 即便将一个 Display Object 从 stage 上移除了( removeChild ) 甚至是已经将它的引用设置为
null,它依然有可能在消耗 CPU。所以要在其移出 display list 时将其完全停下来(比如 mc.stop()
)。
- 卸载从外部装载的内容时,使用loader.unloadAndStop(),而不要使用
loader.unload()。
- 尽可能禁用鼠标交互。obj.mouseEnabled = false; obj.mouseChildren =
false;
- Timer 在某
(2010-09-07 12:42)
追赶(Pursue)行为
我要再一次说“这个行为与寻找行为非常相似”。并且是真的。实事上,追赶行为会调用寻找(seek)作为它的最后一个动作。追赶的关键就预测目标将来的位置。这就意味着目标是运动的,所以它会有位置和速度。我们可以假设这个目标是一辆机车。事实上,可以是另一个
SteeredVehicle 对象继承自机车类。
如何预测目标将要去哪呢?我们拿到它的当前速度向量,延续到它的将来,然后使用这个预测作为寻找的目标。但是要计算多远的将来呢?非常好的问题!我们称做预测时间(look
ahead
time)。如果你计算太远(高预测时间)你将超过目标。要是不够远(低预测时间)你会远远落后于目标。事实上,寻找行为可以被定义为预测时间为零的追赶行为(在零秒钟的将来目标在哪?就是它现在的位置)。
(2010-09-06 17:43)
Vehicle
类
Vehicle
类是基础的转向角色类,但是没有任何转向行为。它仅仅处理简单的运动:位置、速度、质量以及角色碰撞到屏幕边缘会发生什么(既可以反弹回来,也可以重置在舞台的相对面)。SteeredVehicle
类是 Vehicle 的子类,其自身添加了转向行为。这种设计让 Vehicle 类作为不需要转向行为就能运动的对象。还让
SteeredVehicle 类只关注转向功能的实现而不用担心基本运动的细节。
现在我们已经把角色当作一个能够运动并且拥有行为的东西。这现在开始,我们将使用角色(character)和机车(vehicle)这两个词进行相互替换。可以认为角色是驾驶机车的人,甚至“机车”就是角色的身体。如果还不能帮助你的话,请阅读在本章开始提到的“Steering
Behaviors for Autonomous Characters”论文的“Locomotion”部分。
简单起见,下面是这个类,大家可以从本书的下载网站找到 Vehicle.as 文件:
package com.foed
{
import flash.display.Sprite;
(2010-07-26 17:03)
第二章
转向行为
转向行为(steering
behaviors)这个名词是指一系列让物体运动看似智能的算法。这些行为隶属于人工智能(artificial
intelligence)和人工生命(artificial
life),它们能让角色像是有自己的生命一样——可以决定自己何时、何地以及如何运动,以便可以到达目标、追逐敌人、逃离追击、躲避障碍物,以及寻路等等。
这个名词是 Craig Reynolds 在 1999
年的游戏开发者大会上在名为“Steering Behaviors for Autonomous
Characters”的论文中提出的。它描述了一系列算法用于创建一个军队系统,应用在角色游戏和模拟领域。军队通常会影响角色的运动带来角色需要和想要的东西。这其中也囊括了不同的动力的分类,如集群(flocking)行为。事实上,Reynolds
的模拟鸟群聚集的程序“boids”,已经让他广为人知了(见图 2-1)。
1) The only 'best practice' you
should be using all the time is 'Use Your Brain'.
唯一的“Best
Practice”并不是使用各种各样被前人总结过的各种设计方法、模式,框架,那些著名的方法、模式、框架只代码赞同他们的人多,并不代表他们适合你,你应该更多的去使用你的大脑,独立地思考那些方法、模式、框架出现的原因和其背后的想法和思想,那才是“best
practice”。事实上来说,那些所谓的“Best Practice”只不过是限制那些糟糕的程序员们的破坏力。
2)Programmers who don't code in
their spare time for fun will never become as good as those that
do.
如果你对编程没有感到一种快乐,没有在你空闲的时候去以一种的娱乐方式去生活,无论是编程,还是运动,还是去旅游,那么你只不过是在应付你的工作,无时无刻不扎在程序堆中,这样下来,就算是你是一个非常聪明,非常有才华的人,你也不会成为一个优秀的编程员,要么只会平平凡凡,要么只会整天扎在技术中成为书呆子。当然,这个观点是有争议,热情和能力的差距也是很大的。不过我们可以从中汲取
(2010-06-03 13:58)
1、在上面这个 demo 压缩包中的 font 目录下,大家可以找到 AlphaFitness.ttf
字体文件,首先安装该字体。
2、重新启动 Flash,新建一个 Flash 文件(在 demo 中位于
assets/game_font.fla),右键单击库面板,选择新建字体(New Font)。
-- 如果使用 Flash CS4 IDE,我们还可以使用元数据标签(MetaData)嵌入字体,如在第一帧写入代码:
[Embed(source='AlphaFitness.ttf', fontName='AlphaFitnessFont',
mimeType='application/x-font')]
var font:Class;
(2010-06-01 10:16)

我们是Zynga中国的创始成员,我们周围有很多很好的朋友们可以帮助我们快速地成长。已经熟悉的朋友可以更快地融入到我们的文化里,同时,加入Zynga
中国对我们的朋友们也是一个非常好的机会。
* 要求最好会英文,哪怕只是基础;
* 简历要用英文。
Zynga
China- Open Positions - Technical
Zynga is the #1 social
gaming company in the world, and one of the fastest growing
Internet companies in history. At Zynga, our mission is to
connect people through our games. At Zynga, you will find smart
(2010-05-26 14:19)
测试并调整网格
每次运行这个应用,你可以看到打印出的碰撞检测次数。在我 1440 × 900
分辩率的电脑上,在最大化的浏览器中运行 SWF,测试的碰撞检测次数从 80 到 130 次,因为前面的代码是:100 个半径为 25
的小球,网格大小为
50。舞台越小碰撞次数越多。运行几次后可以得出一些数值范围。因为唯一不断变化的是小球的随机分配,你会从执行结果中得到平均值。
现在试着增加格子的大小,比如
100。你会注意到碰撞检测的次数明显变多,因为每个方格中的小球更多了。听起来不好,但却会减少方格和数组循环的次数,一会儿我们会看到它的好处。
现在减少网格数量到 40 或
30。碰撞检测的次数减少了,看起来更符合要求。大家可能会偶尔看到丢失碰撞的情况 ——
两个物体在碰撞后没有变化(仍是白色)。这可不好,但它却提醒我们网格大小要能容纳最大的物体。由此进一步,根据最大的物体动态设置网格大小。
将网格大小设为 50 并修改 makeBalls 创建小球的一句:
var ball:Ball = n