bool GameHUD::init() { if (!Layer::init()) { return false; } Size winSize = CCDirector::getInstance()->getWinSize(); // Draw the background of the game HUD CCTexture2D::setDefaultAlphaPixelFormat(kCCTexture2DPixelFormat_RGBA8888); background = Sprite::create("hud.png"); background->setScaleX (2); background->setAnchorPoint(ccp(0, 0)); this->addChild(background); Vector<String*> images; images.pushBack(StringMake("p1tankU.png")); images.pushBack(StringMake("p2tankU.png")); images.pushBack(StringMake("p1tankD41.png")); images.pushBack(StringMake("p1tankD31.png")); for (int i = 0; i < images.size(); ++i) { String* image = images.at(i); auto *sprite = Sprite::create(image->getCString()); float offsetFraction = ((float)(i + 1)) / (images.size() + 1); sprite->setScale(0.6); sprite->setPosition(ccp(winSize.width*offsetFraction, 35)); this->addChild(sprite); movableSprites.pushBack(sprite); } return true; }
static LoopStack * LoopStackPush (LoopStack *prev, FILE *f, char *tag) { LoopStack *ls = New (sizeof (LoopStack)); ls->prev = prev; ls->tag = StringMake (tag); ls->extra = StringNew (); ls->pos = ftell (f); return ls; }
static LoopStack * LoopStackLoop (ReplaceSet *rs, LoopStack *ls, FILE *f) { String *s = StringMake (ls->tag->buf); LoopStack *ret = ls; Bool loop; StringAdd (ls->extra, '+'); StringAddString (s, ls->extra->buf); loop = ReplaceSetFind (rs, s->buf) != 0; StringDispose (s); if (loop) fseek (f, ls->pos, SEEK_SET); else { ret = ls->prev; StringDispose (ls->tag); StringDispose (ls->extra); Dispose (ls); } return ret; }