徐州软件开发网、徐州程序员、徐州程序员招聘求职、徐州软件企业推荐、 软件项目交易。点击注册加入我们,进入论坛发布消息

【行动胜于雄辩】徐州程序员交流QQ群:324379(一群,满)1182709(二群).进群请先看公告! 招聘求职请先在本站'招聘\求职区'发布,只在群里发布的,将被请出程序员交流群! 谢谢合作

本主题共有 0 篇回复,最新回复发表于 10-12-2009 19:30,作者 xzsdn_08
页 1 / 1 (1 项)
帖子排序: 上一主题 下一主题
  • 10-12-2009 19:30

    • xzsdn_08
    • 灌水10强
      男
    • 注册时间 01-04-2009
    • 江苏徐州
    • 发帖总数 641

    游戏是这样写成的 (第三篇: 简单的游戏框架)

    作者: dr_watson

    通过上一篇, 我们已有个基本的画图功能, 这次让我们弄一个简单的游戏框架吧!


    其实一般的游戏, 大致有两个主要的函数就可以了: update 和 render!

    我们在 update 里更新游戏数据, 然后在render 里把游戏的画面画出来。我们来定议一个叫 CCGameApp 的 class 吧:

    1. class CCGameApp
    2. {
    3. public:
    4.     CCGameApp();
    5.     ~CCGameApp();
    6.    
    7.     void update(float dt);
    8.     void render();

    大家看到我们的 update 函数, 有一个 dt 参数, 在这里我略微解说一下: 游戏的更新率, 最理想是我们把它设成固定的,比如每秒60帧,但有时可能某些原因,游戏没法达到这个更新率,那怎么办呢?总不能让角色忽快忽慢的移动吧!而这个 dt 参数是从上一帧到现在这帧,共用去了多少时间(秒),我们可以利用它调整游戏里的数据,比如说,主角一秒移动1个像素,现在过了dt 这么多秒,那主角应该移动 (1*dt) 个像素了!

    这次,我们也把 CCSprite 一分为二,弄多了一个 CCTexture,目的是让不同的 CCSprite 可以共享一个贴图,一般来说,为了节省空间和速度考虑,我们会把数个小图,放在一个大的贴图里,像上面第一个图,里面就有两个角色的图,那我们建立两个不同的sprites时,可以用同一个贴图!

    而建立 CCSprite的参数,就是小图在大贴图里的起始位置和大小:

    1. CCSprite(CCTexture *texture, float x, float y, float width, float height);

    CCSprite 的 render 也多加了一个角度的参数,我们可以用它把角色转来转去了!

    1. void render(float x, float y, float angle=0.0f);

    因为时间关系不写太多了,大家有兴趣,可以看一下代码作为参考。

    本篇文章的代码可以在这里下载。

    标签:
页 1 / 1 (1 项)
徐州软件开发网、徐州软件开发社区、徐州程序员
© Copyright 2008-2011 XZSDN.NET   Powered By communityserver   站长博客 我的Blog
苏ICP备09002379号 | 意见反馈 | 联系我