10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

使用 Ruby 开发 iOS 游戏

  • 2013-10-08
  • 本文字数:1260 字

    阅读完需:约 4 分钟

Integrallis 网站的创始人 Brian Sam-Bodden Barcelona Ruby 大会上演示了在没有任何 Object-C 知识的情况下,如何使用普通的 Ruby 语言利用 RubyMotion 和开源的 2D 图形类库快速地创建 iOS 平台上的 2D 游戏。

Ruby Motion 是 iOS 和 OS X 平台上的 Ruby 实现,构建在 Objective-C 运行时基础框架之上。它使用的图形类库是 Cocos2D 游戏引擎,并使用 Box2D 向游戏中的对象应用物理定律。 Joybox 则封装了这两个类库并通过一个干净的 Ruby API 将它们暴露了出来。这样避免了安装的麻烦,并且能够使用纯的 Ruby 环境进行开发。

Brian 给出的第一个例子是使用 Ruby 编写的一个 iOS 平台上的俄罗斯方块,它仅通过Ruby 使用了Apple 的核心动画( CoreAnimation )类库。

复制代码
class TetrisController < UIViewController

通过上面这行代码控制器就能够使用由核心动画类库所提供的 2D 视图动画了,例如翻转(flip)游戏视图:

复制代码
def flip(view)
UIView.transitionWithView(view,
duration: 0.5,
options: UIViewAnimationOptionTransitionFlipFromBottom,
animations: proc {
# any other code that we want to run!
},
completion:nil)
end

第二个更加复杂一点的例子是使用 Joybox 实现的一个类似于超级玛丽(Super Mario Brothers)的游戏:

复制代码
@director = Joybox::Configuration.setup do
director display_stats: true
end

上面的代码会返回一个使用默认配置集合的 director 实例。该对象本质上控制了游戏的流程。在这个例子中,设置游戏活动的时候不再需要直接操作核心动画视图。与俄罗斯方块的例子相比,这个示例需要更多的协作和图形化的动画代码。另外,这个示例还使用了Joybox 的图层( Layer )类,它处理了绘图画布和所有的用户交互。然后有一个拥有多个孩子的游戏层关注游戏的不同方面:

复制代码
@blue_sky = LayerColor.new color: "#6365fc".to_color
self << @blue_sky

事实上,Director、Layers 和 Sprites (可以在动画中使用的 2D 图片,它们是游戏中的动态元素)都是从 Cocos2D 类库继承而来的概念,但是 Joybox API 对它们做了封装,所以开发人员才能够使用纯 Ruby 语言进行游戏开发,但是底层还是使用 Objective-C 类库实现。

最后,通过使用 Box2D 的物理引擎和 Joybox 物理 Sprite 类所封装的内容,Brian 展示了如何容易地向被创建的游戏世界应用物理定律:

复制代码
@world = World.new(gravity: [0, -9.8])

在游戏世界中创建一个主体还需要为其指定一些特征:

复制代码
@player_body = @world.new_body(
position: [16*1, 16*9],
type: Body::Dynamic,
fixed_rotation: true
)

其他的功能,例如音频效果在Joybox 中也有。

Brian 还强调了使用 RubyMotion 进行 iOS 游戏开发时还能够使用常见的 Ruby 测试框架,例如不需要 UI 操作的 RSpec。

Brian 的演讲好像在听众里引起了不小的兴趣,因为一些与会者在 Twitter 上盛赞了 Brian

查看英文原文 Developing iOS Games on Ruby

2013-10-08 06:352666
用户头像

发布了 321 篇内容, 共 130.3 次阅读, 收获喜欢 19 次。

关注

评论

发布
暂无评论
发现更多内容

Java 运算符详解与字符串处理技巧

小万哥

Java 程序人生 编程语言 软件工程 后端开发

《UNIX网络编程 卷2:进程间通信(第2版)》PDF

程序员李木子

SublimeText中文破解版 简单易用的代码编辑器

Rose

代码编辑器 SublimeText

一张“哑火”的AI禁令

脑极体

AI

架构实战营模块 8 作业

陈斌

#架构实战营

【YAML语法规范指南】从入门到精通,揭秘神秘语法,引领配置文件解析指南(基础结构篇)

码界西柚

配置 yaml 开发指南 yaml文件 2024年第三十二篇文章

mac电脑好玩的游戏:帕斯卡契约:终极版 游戏模式,体验大升级

Rose

游戏 mac电脑 帕斯卡契约:终极版

全网最全的幻兽帕鲁服务器搭建教程—阿里云【保姆级/高性价比】

申公豹

幻兽帕鲁

口袋瑜伽 Pocket Yoga for mac 专业瑜伽课程 打造完美身材

Rose

瑜伽 Mac软件 瑜伽教学 Pocket Yoga

Minitab Express:对数据进行整理、可视化、建模和预测

Rose

数据分析 数据统计 Minitab Express

macs fan control pro破解版序列号 mac电脑风扇控制 v1.5.17中文版

Rose

苹果电脑 风扇转速控制 Macs Fan Control Pro

提前祝大家新年好!来看看社区 2023 都得了哪些奖吧~

声网

一个线程,从“生”到“死”经历的过程

华为云开发者联盟

Java 线程 开发 华为云 华为云开发者联盟

文心一言 VS 讯飞星火 VS chatgpt (194)-- 算法导论14.3 2题

福大大架构师每日一题

福大大架构师每日一题

FTP(文件传输协议)客户端 Transmit 5 中文for Mac v5.10.4

Rose

ftp Mac软件 ftp传输 Transmit 5

wrk压测

GraphicConverter 12 mac图片浏览器:编辑、转换和增强图像

Rose

Microsoft Outlook将邮件、日历和联系人汇集一处,让你轻松管理一切

Rose

Office 邮件客户端 Microsoft Outlook

安卓动态链接库文件体积优化探索实践

京东科技开发者

Bookends for Mac(文献书籍管理工具)v14.2.9注册激活版

Rose

2023 年已知被利用最多的十大CWE漏洞排名

软件开发 华为云

WiFi 7/QCN9274: Connecting the super network of the future

wallysSK

容器是怎么一步一步成为云原生的基石技术的

申屠鹏会

云计算 容器 云原生

【踩坑指南】线程池使用不当的五个坑

越长大越悲伤

Java 线程池 踩坑指南

千万级数据深分页查询SQL性能优化实践-京东零售技术团队

京东零售技术

Java MySQL 后端

中文版3d lut creator pro调色软件下载 兼容M1

Rose

Mac软件 3d lut creator pro 调色

文心一言 VS 讯飞星火 VS chatgpt (193)-- 算法导论14.3 1题

福大大架构师每日一题

福大大架构师每日一题

极狐 GitLab 和 Xcode Cloud 集成,实现 iOS 的自动打包

极狐GitLab

使用Ruby开发iOS游戏_Ruby_Manuel Pais_InfoQ精选文章