【译】如何创建游戏的续作

【译】如何创建游戏的续作

原文地址:How to create the sequel of a game

这些天,我在研究Box2D,并正在用它开发SamePhysics这个游戏的续作。

这是我的第一个Box2D游戏(你可以从这里下载它的源码),大家认为它很有趣。于是我决定制作一个更有趣的续作,以改进我在旧版本中错过的那些东西。

这是我的第一个续作,因此我必须在开始编码前考虑一些要注意的事项。现在我把它们共享出来: 继续阅读【译】如何创建游戏的续作

【译】使用ConstraintLayout创建复杂的表单布局

【译】使用ConstraintLayout创建复杂的表单布局

原文地址:Flex – Complex Form layouts with ContraintLayout

Form容器默认使用FormLayout布局排列子表单项。FormLayout继承自VerticalLayout,它对FormItem容器进行纵向排列。如果你想实现纵向的排列表单,这当然好,但是很多时候往往不是这样。看看下面的例子。


Get Adobe Flash player

通常情况下,我看到开发者在实现一个表单布局的时候,会放弃FormLayout布局而是使用一堆嵌套的HGroup和VGroup,尽管这种做法有点傻X,效果也不太理想。

还记得Flex 3中的 ConstraintRowsConstraintColumns 么?它们在Flex 4中换了个 ConstraintLayout 的马甲又出现了,这个 Layout 可以用在 Form 中。我发现许多 Flex 开发者不知道这件事,这不奇怪,因为它们在官方文档中的说明少得可怜。而且,如果使用 Google 搜索它,你只能得到 MX 组件的相关内容。

上面的表单在 Spark Form 容器中使用 ConstraintLayout 替代了 FormLayout ,这个 Layout 为 FormItem 容器提供了类似于网格布局的功能,同时实现跨行、跨列。

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/mx"
               viewSourceURL="srcview/index.html">
    <s:layout>
        <s:VerticalLayout horizontalAlign="center" verticalAlign="middle"/>
    </s:layout>

    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>

    <s:Form>
        <s:layout>
            <s:ConstraintLayout>
                <s:constraintRows>
                    <s:ConstraintRow id="row1" />
                    <s:ConstraintRow id="row2"/>
                    <s:ConstraintRow id="row3"/>
                </s:constraintRows>
                <s:constraintColumns>
                    <s:ConstraintColumn id="col1" width="100"/>
                    <s:ConstraintColumn id="col2" width="100"/>
                    <s:ConstraintColumn id="col3" width="100"/>
                </s:constraintColumns>
            </s:ConstraintLayout>
        </s:layout>

        <s:FormItem label="First Name"
                    left="col1:3" right="col2:53" top="row1:0" bottom="row1:0"
                    skinClass="com.shinynet.shinylib.skins.CondensedStackedFormItemSkin">
            <s:TextInput width="100%"/>
        </s:FormItem>
        <s:FormItem label="Last Name"
                    left="col2:53" right="col3:3" top="row1:0" bottom="row1:0"
                    skinClass="com.shinynet.shinylib.skins.CondensedStackedFormItemSkin">
            <s:TextInput width="100%"/>
        </s:FormItem>

        <s:FormItem label="Address"
                    left="col1:3" right="col3:3" top="row2:0" bottom="row2:0"
                    skinClass="com.shinynet.shinylib.skins.CondensedStackedFormItemSkin">
            <s:TextInput width="100%"/>
        </s:FormItem>

        <s:FormItem label="City"
                    left="col1:3" right="col1:3" top="row3:0" bottom="row3:0"
                    skinClass="com.shinynet.shinylib.skins.CondensedStackedFormItemSkin">
            <s:TextInput width="100%"/>
        </s:FormItem>
        <s:FormItem label="State"
                    left="col2:3" right="col2:3" top="row3:0" bottom="row3:0"
                    skinClass="com.shinynet.shinylib.skins.CondensedStackedFormItemSkin">
            <s:TextInput width="100%"/>
        </s:FormItem>
        <s:FormItem label="Zip"
                    left="col3:3" right="col3:3" top="row3:0" bottom="row3:0"
                    skinClass="com.shinynet.shinylib.skins.CondensedStackedFormItemSkin">
            <s:TextInput width="100%"/>
        </s:FormItem>
    </s:Form>

</s:Application>

下面的内容和本文主题没什么关系,但我还是要说一下。我使用了自定义的 FormItem 皮肤 CondensedStackedFormItemSkin ,这个皮肤移除了 sequenceLabelDisplayhelpContentGroup 这两个外观部件,因为它们是不必要的,而且占用了太多空间。你可以从 ShinyLib 库中得到它们,你会发现它非常易用。

【译】Adobe游戏方面的一周新闻:会议,演示和精挑细选的信息

原文地址:A Big Week of News for Adobe’s Gaming Efforts: Conferences, Demos and Screenings Galore

Mobile World大会的AIR预览之后,本周的游戏活动让我们更加兴奋。在本周末的Flash游戏高层会议上,Adobe游戏传教士Lee Brimelow、Flash运行时产品经理Thibault Imbert和几百名与会者讨论了AIR3.2中的新特性以及Adobe游戏的发展方向。开发者现在可以在超过五亿部支持Stage 3D技术的手机和平板电脑上开发游戏,这些手机和平板设备包含苹果iOS、Andorid、Barnes & Noble’s Color NOOK、亚马逊的Kindle Fire和黑莓平台。开发者可以利用以前的Stage 3D代码,而不必从头开始。

AIR 3.2在移动平台上的渲染性能是AIR2的1000倍,它允许游戏开发者在屏幕上渲染包含几百万个对象的动画,并保持60FPS以确保动画流畅。开发者能使用单一的工作流程优化他们的应用,而且能使用设备特有原生扩展。这些原生扩展可以实现振动控制、陀螺仪、双屏幕或整合苹果游戏中心的支付系统。AIR让更多的开发者能容易的提交自己的应用到移动市场。在去年,Android市场和AppStore中的AIR应用程序的数量已经增长了7倍以上!

Adobe游戏团队也将参加本周在旧金山举行的游戏开发者大会(GDC),在那里,我们将展示多种基于新的浏览器桌面游戏和移动平台游戏,这些游戏的提供者是Adobe的重要合作伙伴Rovio、Zynga、GameFly、EPIC、SpilGames等等。SoundquestDelta StrikeSherwood Dungeon这几个高性能、跨平台的游戏使用了新的flash技术,它们将在Adobe的展位中展示。展位中基于AIR的移动平台游戏包括Waste InvadersSpaced AwayWinter on Whale Island,还有Machinarium,这是一个iPad游戏。并且,我们的朋友NVIDIAAMD也将展示它们使用Flash建立的演示。那么,来看看我们在北大厅的展位吧,编号2328。

Flash Player 11.2将在本月迟些时候发布,Adobe正致力于确保Flash技术提供的质量水平能满足游戏开发者的需要,使Flash能够成为真正的web游戏机。通过Stage 3D,Flash播放器已经 在web上带来了主机质量的硬件加速图形能力,这比任何平台做的更多。Flash Player 11.2包含鼠标锁定和扩展GPU支持,我们最近发布的路线图演示了即将推出的直接针对游戏开发者的功能,为客户提供新的功能,我们将继续作出投资。正如我们以前所沟通的,Adobe将产品化“Archemy”,这是一个允许用户在Flash运行时中安全的执行高性能的C和C++代码Adobe研究项目。Archemy的商业版本将提供超越实验室版本的更好性能和生产力,它包括完整的调试支持,并减少了75%的代码量。

还有一件事,我们高兴的宣布,一个专注于游戏开发者的新站点http://gaming.adobe.com已经上线。它有一个使用Flash和AIR的游戏展台,以及更多开发者资源,比如教程和关于如何使用Flash技术开发游戏的信息。去看看吧,然后告诉我们你的想法。游戏!

有道网页翻译

从beta版开始,我一直在用有道词典,小巧且绿色,基本能满足需要。

今天偶尔发现有道词典中有“有道网页翻译2.0beta”的广告,点击试用了一下,感觉还不错。

与Google translate比较,个人感觉有以下几点优缺点:

优点:

  • 不会被墙(Google translate经常被墙,影响心情和效率)
  • 提供翻译难词模式,只显示难词的示意,不会让全文翻译影响阅读

 

缺点:

  • 测试版有些不稳定,某些网站无法翻译,例如这个(当然这是测试版的原因,且Google translate的“不稳定”情况更严重)
  • 翻译质量