我在这里使用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);
}
上面代码中的当powerbar百分比为100时,只显示健康图像,否则不显示健康图像。这里我不能设置定时器类型,我想这就是问题所在,如果有人知道我的问题,请解决这个问题。
你只是错过了代码中的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);
}
谢谢