当前位置: 首页 > news >正文

【转】【翻译】Orx官方教程:1. object

本文译自 orx tutorials 的对 象(object) 。phpxer 译,九天雁翎 (博 客 )修订。最新版本见Orx 官方中文Wiki 。

本文转自phpxer的博客 。原文链接在:http://blog.feihoo.com/2010/07/orx_tutorial_cn_object.html

望有新人能够加入这个翻译者的队伍,早日将Orx的WIKI页中文化。有兴趣的请加入73063577,并与我取得联系,防止重复翻译。


Object (对象)教程

总结

由于orx是数据驱动的,我们只需要两行代码创建一个viewport(视口)和一个object。它们的所有属性都定义在配置文件 (01_Object.ini)中。

Viewport关联到一个按照配置文件中的信息隐含创建的camera(摄像头)。在配置文件里,你还可以设置它们的大小,坐标,对象的颜色,缩 放,旋转,动画,物理属性等等。你甚至无需增加一行代码就可以让任何的配置获得随机值。

在后面的一个示例中我们将看到如何使用一行代码生成复杂的object体系甚至整个 scene(场景)(所有的背景对象和普通对象)。

现在,你可以尝试取消01_Object.ini中某些行的注释,自己尝试一下,然后再继续学习这个教程。完整的选项列表请查看 CreationTemplate.ini。

详细说明

创建一个object是相当简单的。不过,我们首先需确保已经加载了定义了所有object(对象)的属性的配置文件。我们还要通过 viewport/camera组合显示创建好的object(对象)。

不要慌张!所有这些都很容易。

在这篇教程中,我们将加载一个位于父目录中的配置文件。正如你可能想到的,在所有的可执行程序都根据其构建类别(mingw, msvs2005, msvs2008, 等)位于各自的子目录的情况下,我们不打算在每个地方重复同样的配置文件。1)

在我们的例子中,加载配置文件使用类似下面这行代码的方式实现:
orxConfig_Load(”../01_Object.ini”);

然后我们创建viewport(视口)。注意 camera的创建是按照为这个viewport预置的配置信息自动完成的。
orxViewport_CreateFromConfig(”Viewport”);

我们差不多完成了。现在我们只需要创建 object!
orxObject_CreateFromConfig(”Object”);

就这样了!object(对象)已经创建,并且由于在camera的视觉平截体(frustum)内,将会被显示出来。
现在,因为我们使用Orx默认的启动器,我们需要申明我们的插件入口点(这里是我们的Init函数)。这可以使用一个宏很容易地实现。

orxSTATUS Init(){...}

orxPLUGIN_DECLARE_ENTRY_POINT(Init);

因为orx是数据驱动的,我们不需要手动加载任何数据,例如一个sprite(精灵)。一切都由数据管理器为我们搞定,它会确保sprites不在 内存中重复并在其不再使用时自动释放的
如果你查看配置文件,在[Object]这一节,你将看到你可以设定所有的对象属性,例如 graphic (sprite),锚点,颜色,透明度,物理属性,坐标,旋转,缩放,tiling(平铺)(重复),动画,视觉特效,等等。
不要担心,这一切都将在后面的教程中讲到。

现在我们拥有了一个object(对象),我们需要学习如何与之交互。这将我们带入第二个教程:clock.

资源

  • 源代码: 01_Object.c
  • 配置文件: 01_Object.ini

1) 不过,如果你的配置文件名字与可执行文件匹配并且在同一个文件夹下,它将被自动加载。

相关文章:

  • WEB上传文件的插件uploadify
  • 读书笔记,深入理解linux内核第三版
  • OGC标准介绍 2
  • Android游戏开发之游戏帧动画的播放与处理(七)
  • OGC标准介绍 3
  • [我研究]7月第三周
  • 查看服务器实例的属性信息函数--SERVERPROPERTY
  • 10w级别的mysql数据插入
  • 绿色 . IT . 从小事做起
  • x64 参数传递
  • 《Windows Phone 7 UI设计及人机交互指南》翻译稿
  • [转]获取SQL SERVER表字段详细信息
  • QTCreator 的使用
  • IO的学习笔记 - 同步,异步,阻塞,非阻塞
  • Qt Creator 的 error: collect2: ld returned 1 exit status 问题
  • 网络传输文件的问题
  • 【译】JS基础算法脚本:字符串结尾
  • 11111111
  • download使用浅析
  • Java编程基础24——递归练习
  • ng6--错误信息小结(持续更新)
  • node-glob通配符
  • React中的“虫洞”——Context
  • Redis的resp协议
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • vue-loader 源码解析系列之 selector
  • Yii源码解读-服务定位器(Service Locator)
  • 从零开始学习部署
  • 构造函数(constructor)与原型链(prototype)关系
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 前端技术周刊 2019-02-11 Serverless
  • 实习面试笔记
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果
  • 我从编程教室毕业
  • python最赚钱的4个方向,你最心动的是哪个?
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • 正则表达式-基础知识Review
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • #数学建模# 线性规划问题的Matlab求解
  • (1)Nginx简介和安装教程
  • (12)Linux 常见的三种进程状态
  • (12)目标检测_SSD基于pytorch搭建代码
  • (2015)JS ES6 必知的十个 特性
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (十)T检验-第一部分
  • (四) Graphivz 颜色选择
  • (四) 虚拟摄像头vivi体验
  • (推荐)叮当——中文语音对话机器人
  • (转载)虚函数剖析
  • *p=a是把a的值赋给p,p=a是把a的地址赋给p。
  • .NET Framework与.NET Framework SDK有什么不同?
  • .net6+aspose.words导出word并转pdf