fengyun1989 发表于 2013-1-4 01:16:55

<cocos2d-x for window phone>一个简单的打地鼠游戏

<cocos2d-x for window phone>一个简单的打地鼠游戏

    <div class="postText"><div id="cnblogs_post_body">免责声明:本文章由fengyun1989创作,采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可。

写在前面:最近两个月比较忙,很久没更新教程了。这么些日子,发生了不少事,WP8发布了。我的T8788也被彻底抛弃了。。。win8也RP版了。前景未卜啊。肯定不少人在迷茫了吧。我觉得呢,都是浮云,语言只是工具,能够一通百通才是王道,微软不行大不了换IOS,Android。接下来的一段时间,估计会写些win8的教程。我感觉win8和WP8有种莫名的联系,不过也道不清说不明。反正就顺着感觉来了。
本次教程写一个简单的打地鼠游戏。如果你对cocos2d-x编程不了解,可以先阅读《用cocos2d-x做一个简单的windows phone 7游戏》系列文章。不过,如果你有相关的经验就另当别论了。
程序截图:
http://pic002.cnblogs.com/images/2012/209924/2012070910283788.png

思路简介:
  打地鼠主要是问题就在于地鼠出头和打地鼠的点击处理。地鼠出头有两种方法,一种是用动画,一种是用Z轴的纵向效果。动画效果的方法Nowpaper前段时间就写了这么一篇《Cocos2d-x for WindowsPhone:开发一个打地鼠游戏》,我想就不在这里啰嗦了。懒得再将这些重复的内容在做一遍。这里就介绍下Z轴的方法。
    
http://pic002.cnblogs.com/images/2012/209924/2012070910545591.png
    只要把前景分为3块。分为上中下三块,在洞的中心分开。添加到层的时候设置Z轴,最下的最前,最上的最后。最后后的设置一块黑色的背景。两块图之间留着空间来让地鼠Sprite进行move动作。这样就能产生地鼠从洞中钻出的视觉效果了。
    现在来下载需要的图片;http://dl.dbank.com/c0tayrr384
开始吧:
  新建一个工程cocos2d的工程,命名为cocos2dWhacAMoleDemo。当然,因为是练习项目,所以OpenXLive没有用到。就去掉那个勾。然后修复引用。这些操作做了很多次了。不懂的建议看下以前的文章。
  然后再Classes文件夹添加一个类。命名为AttackMoleScene.cs,使之继承于CCScene。修改代码如下:

<div class="cnblogs_code">namespace cocos2dWhacAMoleDemo.Classes{    class AttackMoleScene:CCScene    {      public AttackMoleScene()      {            this.addChild(AttackMoleLayer.node());      }    }    class AttackMoleLayer : CCLayer    {      public override bool init()      {            if (!base.init())                return false;            CCSize winSize = CCDirector.sharedDirector().getWinSize();            CCSprite background = CCSprite.spriteWithFile(@"images/background");            background.position = new CCPoint(winSize.width / 2, winSize.height / 2);            this.addChild(background, -3);            CCSprite grassUpper = CCSprite.spriteWithFile(@"images/grass_upper");            grassUpper.position = new CCPoint(winSize.width / 2, winSize.height - grassUpper.contentSize.height / 2);            this.addChild(grassUpper, -2);            CCSprite grassMid = CCSprite.spriteWithFile(@"images/grass_mid");            grassMid.position = new CCPoint(winSize.width / 2,                winSize.height - grassUpper.contentSize.height - grassMid.contentSize.height / 2);            this.addChild(grassMid, 0);            CCSprite grassLower = CCSprite.spriteWithFile(@"images/grass_lower");            grassLower.position = new CCPoint(winSize.width / 2, grassLower.contentSize.height / 2);            this.addChild(grassLower, 2);            return true;      }      public new static AttackMoleLayer node()      {            AttackMoleLayer layer = new AttackMoleLayer();            if (layer.init())                return layer;            return null;      }    }}
页: [1]
查看完整版本: <cocos2d-x for window phone>一个简单的打地鼠游戏