0

嗨,我在这里使用 cocos2d 做一个应用程序,我需要显示设置进度计时器。我使用下面的代码设置,但我没有得到正确的解决方案。

public class HelloWorldLayer extends CCColorLayer {
    static HelloWorldLayer layer;
      CGSize winSize;
     CCSprite home,target;
    protected HelloWorldLayer(ccColor4B color) {
    super(color);
    // TODO Auto-generated constructor stub
    winSize = CCDirector.sharedDirector().displaySize();
    this.setIsTouchEnabled(true);

  CCSprite progressBorder=CCSprite.sprite("BorderImage.png");
           progressBorder.setPosition(CGPoint.ccp(20, winSize.height - 50.5f));
           this.addChild(progressBorder);
           powerBar=CCProgressTimer.progress("Health.png");
           powerBar.setType(0);
           powerBar.setAnchorPoint(CGPoint.ccp(0, 0));
           powerBar.setPercentage(90);
           progressBorder.addChild(powerBar);
           this.schedule("gameLogic2", 1);

}

public static CCScene scene() {
    // TODO Auto-generated method stub
    //Creates scene  
    CCScene scene = CCScene.node();

    layer = new HelloWorldLayer(ccColor4B.ccc4(225, 225,225, 225));

    //adds layer to scene
    scene.addChild(layer);

    return scene;
}

          public void gameLogic2(float dt)
       {

       float sss=powerBar.getPercentage();

        sss +=1;
        powerBar.setPercentage(sss);
   }

在上面的代码中,当 powerbarpercentage 100 时,只有 helth 图像显示其他明智的 helth 图像。这里我无法设置计时器类型,我认为这是问题,如果有人知道我的问题,请解决这个问题......

4

1 回答 1

0

您只是错过了代码中的 powerBar 类型。

更改代码

CCSprite progressBorder=CCSprite.sprite("BorderImage.png");
           progressBorder.setPosition(CGPoint.ccp(20, winSize.height - 50.5f));
           this.addChild(progressBorder);
           powerBar=CCProgressTimer.progress("Health.png");
           progressBar.setType(CCProgressTimer.kCCProgressTimerTypeVerticalBarBT);
           powerBar.setAnchorPoint(CGPoint.ccp(0, 0));
           powerBar.setPercentage(90);
           progressBorder.addChild(powerBar);
           this.schedule("gameLogic2", 1);

}

谢谢

于 2013-11-21T08:16:27.517 回答