草庐IT

iphone - quartz 2D 或 OpenGL ES?长期利弊,迁移到其他平台的可能性

coder 2023-12-14 原文

我很难决定是使用 Quartz2D 还是 OpenGL 来玩 iPad 游戏。它将主要是 2D,但效果强烈(10-30 个对象的同时照明效果,屏幕上同时出现 10-20 个动画)。 到目前为止,假设我在这两种技术上同样愚蠢并且必须从头开始学习它们,我来到了这个列表。 (我在这里阅读了几个关于 SO 的主题,名称如“Quartz 或 OpenGL”,但我仍然有一些问题)

quartz :

  • 缩短上市时间,因为 准备好使用像 UIView 这样的抽象, UIImageView,核心动画 抽象

打开 GL ES

  • 更接近于硬件,因此,性能 更好。

  • 使用 OpenGL ES 实现的应用可以更容易地迁移到 Android、MeeGo、Windows Phone 等。

我的问题是:

  1. 重写需要多长时间 Quartz 2d 应用程序使用 OpenGL?让我们 说我花了 2 个人月的时间来写 Quartz 应用程序,我需要多少时间 需要重写吗? (拜托,只是一些主观意见,我会尝试以某种方式总结它们)
  2. 关于迁移到其他平台的便利性,当使用 OpenGL 时,真的如此吗? 或者与 OpenGL 应用程序迁移相比,将 Quartz 应用程序从 iPhoneOS 迁移到 Android 时的工作不会大很多? (易于迁移是一个非常重要的标准)
  3. 关于 OpenGL,关于迁移,我应该使用 OpenGL 1.1 还是 2.0? (Android通过NDK支持2.0,不知道NDK的使用会增加还是减少迁移工作量)

最佳答案

使用跨平台的框架

Android 版 Cocos2d: http://code.google.com/p/cocos2d-android/

iPhone 版 Cocos2d:

http://code.google.com/p/cocos2d-iphone/

关于iphone - quartz 2D 或 OpenGL ES?长期利弊,迁移到其他平台的可能性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2598408/

有关iphone - quartz 2D 或 OpenGL ES?长期利弊,迁移到其他平台的可能性的更多相关文章

  1. ruby - 其他文件中的 Rake 任务 - 2

    我试图在一个项目中使用rake,如果我把所有东西都放到Rakefile中,它会很大并且很难读取/找到东西,所以我试着将每个命名空间放在lib/rake中它自己的文件中,我添加了这个到我的rake文件的顶部:Dir['#{File.dirname(__FILE__)}/lib/rake/*.rake'].map{|f|requiref}它加载文件没问题,但没有任务。我现在只有一个.rake文件作为测试,名为“servers.rake”,它看起来像这样:namespace:serverdotask:testdoputs"test"endend所以当我运行rakeserver:testid时

  2. ruby - 如何将脚本文件的末尾读取为数据文件(Perl 或任何其他语言) - 2

    我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚

  3. ruby - 调用其他方法的 TDD 方法的正确方法 - 2

    我需要一些关于TDD概念的帮助。假设我有以下代码defexecute(command)casecommandwhen"c"create_new_characterwhen"i"display_inventoryendenddefcreate_new_character#dostufftocreatenewcharacterenddefdisplay_inventory#dostufftodisplayinventoryend现在我不确定要为什么编写单元测试。如果我为execute方法编写单元测试,那不是几乎涵盖了我对create_new_character和display_invent

  4. java - 我的模型类或其他类中应该有逻辑吗 - 2

    我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我

  5. ruby-on-rails - Ruby on Rails,在更新其他列值时更改列值 - 2

    我在Rails模型中有两列相互关联:Article.bodyArticle.body_updated_on每次Article.body更新时,我想将Article.body_updated_on更改为Time.now。如果任何其他字段已更新,则无需进行任何操作。 最佳答案 只需在将回调保存到您的文章模型之前添加classArticle 关于ruby-on-rails-RubyonRails,在更新其他列值时更改列值,我们在StackOverflow上找到一个类似的问题:

  6. ruby-on-rails - 用一系列时间增量填充选择,加上其他选项 - 2

    使用RubyonRails,我使用给定的增量(例如每30分钟)用时间填充“选择”。目前我正在YAML文件中写出所有的可能性,但我觉得有一种更巧妙的方法。我想我想提供一个开始时间、一个结束时间、一个增量,并且目前只提供一个名为“关闭”的选项(想想“business_hours”)。所以,我的选择可能会显示:'Closed'5:00am5:30am6:00am...[allthewayto]...11:30pm谁能想出更好的方法,或者只是将它们全部“拼写”出来的最佳方法? 最佳答案 此答案基于@emh的答案。defcreate_hour

  7. ruby - 如果哈希中只有一个特定键具有真值(所有其他值均为假),如何返回真 - 2

    例如:options={fight:true,use_item:false,run_away:false,save_game:false}我想要一个计算结果为true的bool表达式,当且仅当:fight为true,其余为false(如上图所示)。我可以一起解决这个问题,但我正在努力训练自己编写更优雅的ruby​​。谢谢!编辑:黑客是:(options[:fight]==true&&options.delete(:fight).values.all{|x|!x}) 最佳答案 假设所有值都是严格的bool值,它很简单:options=

  8. ruby-on-rails - 西里尔字符串 Я̆ Я̄ Я̈ 在 ruby​​ 和其他编程语言中返回长度 2 而不是 1 - 2

    在Ruby、Javascript和Java(其他我没试过)中,有西里尔字符Я̆Я̄Я̈长度2。当我尝试用这些字符检查字符串的长度时,我得到了错误的输出值。"Я̈".mb_chars.length#=>2#shouldbe1(rubyonrails)"Я̆".length#=>2#shouldbe1(ruby,javascript)"Ӭ".length#=>1#correct(ruby,javascript)请注意,字符串以UTF-8编码,每个字符都表现为单个字符。我的问题是为什么会有这样的行为,我怎样才能正确地得到带有这些字符的字符串的长度? 最佳答案

  9. ruby - 使用 rake 导入(调用其他 rakefile) - 2

    这是我的主要rake文件subrake='subrake'task:init=>[subrake]do#callsubrake.buildendimportsubrake我看到有关上述步骤如何工作的文档,但我无法弄清楚如何调用其他subrake文件中的任务。顺便说一句,这些任务可能与我的同名,这是个问题吗? 最佳答案 我想我回答晚了,但几分钟前我也有同样的问题。因此该解决方案可能对某些人有用。Rakefile.rbsubrake='subrake'task:default=>:inittask:init=>["#{subrake}:

  10. ruby-on-rails - 在什么情况下我应该使用实例变量而不是其他变量类型? - 2

    我正在使用RubyonRails3,我想知道在什么情况下我应该使用实例变量而不是其他变量类型,以及这些变量是否有安全原因。例子:#Usinganinstancevariable@accounts=Account.find(...)#Usinga"local"\"normal"variableaccount=Account.find(...) 最佳答案 一般来说,实例变量是局部的,并且持久存在于对象的实例中,而局部变量只是局部的,并且持久存在于函数/对象/block范围内。例如:classUserdefname@nameenddefn

随机推荐