放假这几天写个一个iPhone模拟器

听起来挺悬的,好家伙写了一个iPhone的模拟器,模拟了一个Mac OS系统,呵呵,其实不是,我可没那么牛比。

其实写的就是一个专门应对iPhone游戏开发的win平台模拟器,与GameFramework配合,从而极大的提高了哪些熟悉win开发但不熟悉iPhone开发者的开发效率。毕竟我也是Windows开发出身,用vs最熟也最顺手。

 

这个模拟器主要功能就是与GameFramework进行配合,提供了诸如点选,滑动,震动,设置模拟器朝向等功能,更重要的是与GameFramework配合提供了直接运行脚本,console信息输出,Debug模式等功能。

 

没有看我前面文章的朋友也许不清楚这里的GameFramework的用途。这里我简单画一个图

 

 

iPhone Simulator              一个exe的壳,最大限度提供iPhone常规操作,并提供方便的脚本调试,控制台信息输出等功能

         ||

         //

GameFramework             平台无关的游戏开发框架,抽象出游戏一般的流程个骨架,具体的游戏可在基础上丰富其内容

         ||

         //

     Engine                         平台无关的游戏引擎,需要注意的是任何逻辑相关的东西都不放在这里,引擎的理想状态是提供功能独立的

                                        模块供GameFramework调用,当然很多情况下很难做到,但要朝这个方向尽自己最大努力

 

接下来说一下iPhone模拟器需要注意的地方,其实就是模拟iPhone旋转的操作,如果做过iPhone开发的朋友都知道,iPhone可以竖着也可以横着,但横正并不意味着你的viewport的宽高调换,他还是原来那样,你需要把相机旋转才能得到正确的效果。下面我是的为代码,大家可以参考一下:

 

glMatrixMode(GL_PROJECTION);
glLoadIdentity();

 

if (GetOrientation() == ORIENTATION_UP) {

       glOrtho(left, right, bottom, top, zNear, zFar);

}

else if (GetOrientation() == ORIENTATION_LEFT) {

       glRotatef( 90.0f, 0.0f, 0.0f, 1.0f);
      glOrtho(bottom, top, left, right, zNear, zFar);

}

 

这段代码演示了2D在正常情况下(ORIENTATION_UP)坐标原点在做上角,向右是X正方向,向下是Y正方向(和Windows坐标系一直),当向左旋转后依然保证坐标系位于屏幕左上角。这样才能保证逻辑上不用去区分旋转与否。其他选装方式可自行推导。

 

最后上一张横着的模拟器图

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值