void Picnic2::createBg() { newSprite("picnic02-background", G_SWIDTH/2, G_SHEIGHT/2, this, -1, RATIO_XY); basketSprite = newSprite("picnic02-basket", getX(630), getY(350), this, 0, RATIO_XY); lbFirst = newLabel("Mom says she packed a special picnic lunch for the beach.", "Arial", 40, G_SWIDTH/2, getY(530), this, 1, RATIO_X); lbFirst->setOpacity(0); lbSecond = newLabel("I wonder what makes it so special.", "Arial", 40, G_SWIDTH/2, getY(580), this, 1, RATIO_X); lbSecond->setOpacity(0); labelBackgroundSprite = newSprite("white-1-pixel", G_SWIDTH/2, getY(530), this, 0, RATIO_XY); labelBackgroundSpriteForlabel2 = newSprite("white-1-pixel", G_SWIDTH/2, getY(580), this, 0, RATIO_XY); CCSize labelSize = lbFirst->getContentSize(); CCSize labelSize2 = lbSecond->getContentSize(); labelBackgroundSprite->setScaleX(labelSize.width); labelBackgroundSprite->setScaleY(40); //labelBackgroundSprite->setOpacity(30); labelBackgroundSpriteForlabel2->setScaleX(labelSize2.width); labelBackgroundSpriteForlabel2->setScaleY(40); //labelBackgroundSpriteForlabel2->setOpacity(30); labelBackgroundSpriteForlabel2->setVisible(false); labelBackgroundSprite->setVisible(false); lbFirst->runAction(CCSequence::create(CCDelayTime::create(1.0f), CCCallFunc::create(this,callfunc_selector(Picnic2::playEffect1)), CCFadeIn::create(0.5f), CCCallFunc::create(this,callfunc_selector(Picnic2::SetvisibilityForTextBackground1)), NULL)); lbSecond->runAction(CCSequence::create(CCDelayTime::create(5.0f), CCCallFunc::create(this,callfunc_selector(Picnic2::playEffect2)),CCFadeIn::create(1.0f), CCCallFunc::create(this,callfunc_selector(Picnic2::SetvisibilityForTextBackground2)), NULL)); }
SpriteFactory::SpriteFactory() { assetsDir = "Assets\\"; newSprite("TIRE", "Vehicle\\tire.png"); newSprite("HUMMER", "Vehicle\\Hummer.png"); newSprite("DEATHCAR", "Vehicle\\deathCar.png"); newSprite("EXAMPLECHAR", "Character\\example.png"); }
CScreen * newCScreen(int x, int y, int small){ CScreen* cscreen = malloc(sizeof(CScreen)); char **maps[] = {WINDOWS_BIG, BSOD_BIG, LINUX_BIG, MAC_BIG, DEATH_BIG}; if (small) { maps[0] = WINDOWS_SMALL; maps[1] = BSOD_SMALL; maps[2] = LINUX_SMALL; maps[3] = MAC_SMALL; maps[4] = DEATH_SMALL; } cscreen->sprite = newSprite(x, y, maps, sizeof(maps)/sizeof(char*)); Note notes[] = {{Mi6, 275},{Mi6, 250},{Mi6, 225},{Mi6, 200}, {Mi6, 175},{Mi6, 150},{Mi6, 125},{Mi6, 100}, {Mi6, 75},{Mi6, 50},{Mi6, 25}, {Mi6, 1000}}; cscreen->crash = newSong(50, notes, sizeof(notes)/sizeof(Note)); Note notes1[] = {{Mi3, 150}, {Fa3, 150}, {Sol3, 150}, {Re3, 150}, {Do6, 250}, {Do6, 250}}; cscreen->reinstall = newSong(50, notes1, sizeof(notes1)/sizeof(Note)); cscreen->state = WINDOWS; cscreen->nextCrashTime = -1; return cscreen; }
void Picnic1::createBg() { newSprite("picnic01-background", G_SWIDTH/2, G_SHEIGHT/2, this, -1, RATIO_XY); joshSprite = newSprite("picnic01-josh", getX(252), getY(330), this, 0, RATIO_XY); emmaSprite = newSprite("picnic01-emma", getX(854), getY(330), this, 0, RATIO_XY); ballSprite = newSprite("picnic03-ball", getX(540), getY(350), this, 0, RATIO_XY); sunSprite = newSprite("picnic01-sun", getX(852), getY(50), this, 0, RATIO_XY); lbFirst = newLabel("Josh and Emma are getting hungry,", "Arial", 40, G_SWIDTH/2, getY(530), this, 1, RATIO_X); lbFirst->setOpacity(0); lbSecond = newLabel("it must be time for lunch.", "Arial", 40, G_SWIDTH/2, getY(580), this, 1, RATIO_X); lbSecond->setOpacity(0); labelBackgroundSprite = newSprite("white-1-pixel", G_SWIDTH/2, getY(530), this, 0, RATIO_XY); labelBackgroundSpriteForlabel2 = newSprite("white-1-pixel", G_SWIDTH/2, getY(580), this, 0, RATIO_XY); CCSize labelSize = lbFirst->getContentSize(); CCSize labelSize2 = lbSecond->getContentSize(); labelBackgroundSprite->setScaleX(labelSize.width); labelBackgroundSprite->setScaleY(40); //labelBackgroundSprite->setOpacity(30); labelBackgroundSpriteForlabel2->setScaleX(labelSize2.width); labelBackgroundSpriteForlabel2->setScaleY(40); // labelBackgroundSpriteForlabel2->setOpacity(30); labelBackgroundSpriteForlabel2->setVisible(false); labelBackgroundSprite->setVisible(false); lbFirst->runAction(CCSequence::create(CCDelayTime::create(1.0f), CCCallFunc::create(this,callfunc_selector(Picnic1::playEffect1)), CCFadeIn::create(0.5f), CCCallFunc::create(this,callfunc_selector(Picnic1::SetvisibilityForTextBackground1)), NULL)); lbSecond->runAction(CCSequence::create(CCDelayTime::create(3.0f), CCCallFunc::create(this,callfunc_selector(Picnic1::playEffect2)),CCFadeIn::create(1.0f), CCCallFunc::create(this,callfunc_selector(Picnic1::SetvisibilityForTextBackground2)), NULL)); }
void game_init() { disable_irq(MOUSE_IRQ); disable_irq(KBD_IRQ); // loading screen char **mapsBG[] = {LOADING_BOARD}; Sprite *loadingBG = newSprite(0, 0, mapsBG, sizeof(mapsBG)/sizeof(char*)); drawSpriteBG(loadingBG, base); srand(time(NULL)); mapsBG[0] = BG; spriteBG = newSprite(0, 0, mapsBG, sizeof(mapsBG)/sizeof(char*)); mapsBG[0] = HELP_BOARD; helpBoard = newSprite(0, 0, mapsBG, sizeof(mapsBG)/sizeof(char*)); mapsBG[0] = SCORE_BOARD; scoreBoard = newSprite(0, 0, mapsBG, sizeof(mapsBG)/sizeof(char*)); helpButton = newButton(0, 160, HELP_OVER); exitButton = newButton(196, 40, EXIT_OVER); hammer = newHammer(); numPCs = NUM_PCS; cscreens = malloc(NUM_PCS * sizeof(CScreen)); cscreens[0] = newCScreen(241, 367, 0); cscreens[1] = newCScreen(435, 363, 0); cscreens[2] = newCScreen(626, 363, 0); cscreens[3] = newCScreen(388, 224, 1); cscreens[4] = newCScreen(532, 216, 1); cscreens[5] = newCScreen(672, 209, 1); score = newScore(); highScores = readHighScores(); state = PLAYING; enable_irq(KBD_IRQ); enable_irq(MOUSE_IRQ); }
int main() { RenderStack stack = getRenderStack(); Image img = newImage("test.png"); Layer lyr = newLayer(0, 240, 0, 320); logNumber(Image_width(img)); spr = newSprite(img, 10, 10, 20, 20); Layer_add(lyr, spr); RenderStack_addLayer(stack, lyr); }
void Picnic6::createBg() { newSprite("picnic06-backgroundt", G_SWIDTH/2, G_SHEIGHT/2, this, -1, RATIO_XY); lbFirst = newLabel("Pretzels are a great salty,", "Arial", 40, G_SWIDTH/2, getY(530), this, 1, RATIO_X); lbFirst->setOpacity(0); lbSecond = newLabel("crunchy side to go with our sandwiches.", "Arial", 40, G_SWIDTH/2, getY(580), this, 1, RATIO_X); lbSecond->setOpacity(0); labelBackgroundSprite = newSprite("white-1-pixel", G_SWIDTH/2, getY(530), this, 0, RATIO_XY); labelBackgroundSpriteForlabel2 = newSprite("white-1-pixel", G_SWIDTH/2, getY(580), this, 0, RATIO_XY); CCSize labelSize = lbFirst->getContentSize(); CCSize labelSize2 = lbSecond->getContentSize(); labelBackgroundSprite->setScaleX(labelSize.width); labelBackgroundSprite->setScaleY(40); //labelBackgroundSprite->setOpacity(30); labelBackgroundSpriteForlabel2->setScaleX(labelSize2.width); labelBackgroundSpriteForlabel2->setScaleY(40); // labelBackgroundSpriteForlabel2->setOpacity(30); labelBackgroundSpriteForlabel2->setVisible(false); labelBackgroundSprite->setVisible(false); lbFirst->runAction(CCSequence::create(CCDelayTime::create(1.0f), CCCallFunc::create(this,callfunc_selector(Picnic6::playEffect1)), CCFadeIn::create(0.5f), CCCallFunc::create(this,callfunc_selector(Picnic6::SetvisibilityForTextBackground1)), NULL)); lbSecond->runAction(CCSequence::create(CCDelayTime::create(3.0f), CCCallFunc::create(this,callfunc_selector(Picnic6::playEffect2)),CCFadeIn::create(1.0f), CCCallFunc::create(this,callfunc_selector(Picnic6::SetvisibilityForTextBackground2)), NULL)); }
void Picnic4::createBg() { newSprite("picnic04-backgroundt", G_SWIDTH/2, G_SHEIGHT/2, this, -1, RATIO_XY); lbFirst = newLabel("What do Josh and Emma have to drink?", "Arial", 35, G_SWIDTH/2, getY(530), this, 1, RATIO_X); lbFirst->setOpacity(0); lbSecond = newLabel("Oh, it’s pineapple juice.", "Arial", 35, G_SWIDTH/2, getY(580), this, 1, RATIO_X); lbSecond->setOpacity(0); labelBackgroundSprite = newSprite("white-1-pixel", G_SWIDTH/2, getY(530), this, 0, RATIO_XY); labelBackgroundSpriteForlabel2 = newSprite("white-1-pixel", G_SWIDTH/2, getY(580), this, 0, RATIO_XY); CCSize labelSize = lbFirst->getContentSize(); CCSize labelSize2 = lbSecond->getContentSize(); labelBackgroundSprite->setScaleX(labelSize.width); labelBackgroundSprite->setScaleY(40); //labelBackgroundSprite->setOpacity(30); labelBackgroundSpriteForlabel2->setScaleX(labelSize2.width); labelBackgroundSpriteForlabel2->setScaleY(40); //labelBackgroundSpriteForlabel2->setOpacity(30); labelBackgroundSpriteForlabel2->setVisible(false); labelBackgroundSprite->setVisible(false); lbFirst->runAction(CCSequence::create(CCDelayTime::create(1.0f), CCCallFunc::create(this,callfunc_selector(Picnic4::playEffect1)), CCFadeIn::create(0.5f), CCCallFunc::create(this,callfunc_selector(Picnic4::SetvisibilityForTextBackground1)), NULL)); lbSecond->runAction(CCSequence::create(CCDelayTime::create(5.0f), CCCallFunc::create(this,callfunc_selector(Picnic4::playEffect2)),CCFadeIn::create(1.0f), CCCallFunc::create(this,callfunc_selector(Picnic4::SetvisibilityForTextBackground2)), NULL)); }
FASpriteGroup Renderer::loadImageImp(const std::string& path) { bool contains = mSpriteCache.find(path) != mSpriteCache.end(); if(contains) { FASpriteGroup cached = mSpriteCache[path].lock(); if(cached) return cached; } FASpriteGroup newSprite(new CacheSpriteGroup(path)); mSpriteCache[path] = boost::weak_ptr<CacheSpriteGroup>(newSprite); return newSprite; }
void Manager::explodeSprite(const string& name) { std::list<Drawable*>::iterator ptr = explosions.begin(); while ( ptr != explosions.end() ) { Drawable* sprite = *ptr; if ( sprite ){ std::cout << "Checking: " << sprite->getName() << std::endl; if (sprite->getName() == name) { const Frame* frame = sprite->getFrame(); Sprite newSprite(sprite->getPosition(), sprite->getVelocity(), name, frame); delete sprite; ptr = explosions.erase(ptr); explosions.push_back( new ExplodingSprite(newSprite) ); } } else ++ptr; } }
void SpriteFactory::loadSprite(const std::string& xmlfile) { std::ifstream texturePack(xmlfile.c_str()); std::vector<char> buffer((std::istreambuf_iterator<char>(texturePack)), std::istreambuf_iterator<char>()); buffer.push_back('\0'); rapidxml::xml_document<> data; data.parse<rapidxml::parse_declaration_node|rapidxml::parse_no_data_nodes>(&buffer[0]); rapidxml::xml_node<>* root = data.first_node("texture_pack"); std::string path = root->first_attribute("path")->value(); rapidxml::xml_node<>* cur_node = root->first_node("texture"); while (cur_node != NULL) { newSprite(cur_node->first_attribute("id")->value(), path + cur_node->first_attribute("filename")->value()); cur_node = cur_node->next_sibling(); } }
void StoreLayer::createBg(){ newSprite("setting_bg", G_SWIDTH/2, G_SHEIGHT/2, this, 0, RATIO_XY); newLabel("Store", "Arial MT", 50, G_SWIDTH/2, getY(220), this, 0, RATIO_XY); lbEnglish = newLabel("English", "Arial MT", 30, G_SWIDTH/2 - getX(180), getY(320), this, 0, RATIO_XY); lbSpanish = newLabel("Spanish", "Arial MT", 30, G_SWIDTH/2 - getX(180), getY(400), this, 0, RATIO_XY); lbEnglish->setAnchorPoint(ccp(0, 0.5f)); lbSpanish->setAnchorPoint(ccp(0, 0.5f)); btnEnglish = newButton("select", G_SWIDTH/2 + getX(120), getY(320), this, menu_selector(StoreLayer::onClose), true, RATIO_XY); btnEnglish->setScale(0.8*G_SCALEX); btnSpanish = newButton("buy", G_SWIDTH/2 + getX(120), getY(400), this, menu_selector(StoreLayer::onClose), true, RATIO_XY); btnSpanish->setScale(0.8*G_SCALEX); btnClose = newButton("close", getX(800), getY(180), this, menu_selector(StoreLayer::onClose), true, RATIO_XY); CCMenu *menu = CCMenu::create(btnClose,btnEnglish,btnSpanish, NULL); menu->setPosition(ccp(0, 0)); this->addChild(menu, 0); }
void sdlMapInit(sdlMap *sdMap) { Map *map; Interface *interface; int dimx, dimy; map = newMap(15, 15, 1); setSdlMap(sdMap,map); interface = newInterface(); setSdlMapInterface(sdMap,interface); assert(SDL_Init(SDL_INIT_EVERYTHING)!= -1); dimx = 15; dimy = 15; //met les valeurs max de la position du curseur sdMap->interface->cursor->max.x = dimx-1; sdMap->interface->cursor->max.y = dimy-1; dimx = (dimx+10) * 32; dimy = (dimy+5) * 32; //Creation de l'ecran setSdlMapEcran(sdMap,SDL_SetVideoMode(dimx, dimy, 32, SDL_SWSURFACE)); assert(getSdlMapEcran(sdMap)!=NULL); SDL_WM_SetCaption( "Tower Défonce v0.1", NULL ); //Chargement des images sdMap->Path = newSprite(); addSprite(sdMap->Path, "data/map/path.png"); sdMap->Terrain = newSprite(); addSprite(sdMap->Terrain, "data/map/terrain.png"); addSprite(sdMap->Terrain, "data/map/terrainI.png"); sdMap->Grotte = newSprite(); addSprite(sdMap->Grotte, "data/map/grotte.png"); addSprite(sdMap->Grotte, "data/map/grotte2.png"); sdMap->Ville = newSprite(); addSprite(sdMap->Ville, "data/map/ville.png"); addSprite(sdMap->Ville, "data/map/ville2.png"); sdMap->Life = newSprite(); addSprite(sdMap->Life, "data/enemies/life/0.png"); addSprite(sdMap->Life, "data/enemies/life/20.png"); addSprite(sdMap->Life, "data/enemies/life/40.png"); addSprite(sdMap->Life, "data/enemies/life/60.png"); addSprite(sdMap->Life, "data/enemies/life/80.png"); addSprite(sdMap->Life, "data/enemies/life/100.png"); sdMap->Projectile = newSprite(); addSprite(sdMap->Projectile, "data/towers/projectile/0.png"); //mage addSprite(sdMap->Projectile, "data/towers/projectile/1.png"); //canon addSprite(sdMap->Projectile, "data/towers/projectile/2.png"); //archer addSprite(sdMap->Projectile, "data/towers/projectile/3.png"); //archer addSprite(sdMap->Projectile, "data/towers/projectile/4.png"); //archer addSprite(sdMap->Projectile, "data/towers/projectile/5.png"); //archer sdMap->EnemyClassic = newSprite(); addSprite(sdMap->EnemyClassic, "data/enemies/classic/0.png"); addSprite(sdMap->EnemyClassic, "data/enemies/classic/1.png"); addSprite(sdMap->EnemyClassic, "data/enemies/classic/2.png"); addSprite(sdMap->EnemyClassic, "data/enemies/classic/3.png"); sdMap->EnemyFly = newSprite(); addSprite(sdMap->EnemyFly, "data/enemies/fly/0.png"); addSprite(sdMap->EnemyFly, "data/enemies/fly/1.png"); sdMap->EnemyBoss = newSprite(); addSprite(sdMap->EnemyBoss, "data/enemies/boss/0.png"); sdMap->TowerAura = newSprite(); addSprite(sdMap->TowerAura, "data/towers/aura/0.png"); addSprite(sdMap->TowerAura, "data/towers/aura/1.png"); addSprite(sdMap->TowerAura, "data/towers/aura/2.png"); addSprite(sdMap->TowerAura, "data/towers/aura/3.png"); addSprite(sdMap->TowerAura, "data/towers/aura/4.png"); sdMap->TowerArcher = newSprite(); addSprite(sdMap->TowerArcher, "data/towers/archer/0.png"); addSprite(sdMap->TowerArcher, "data/towers/archer/1.png"); addSprite(sdMap->TowerArcher, "data/towers/archer/2.png"); sdMap->TowerCannon = newSprite(); addSprite(sdMap->TowerCannon, "data/towers/cannon/0.png"); addSprite(sdMap->TowerCannon, "data/towers/cannon/2.png"); addSprite(sdMap->TowerCannon, "data/towers/cannon/1.png"); sdMap->TowerKnight = newSprite(); addSprite(sdMap->TowerKnight, "data/towers/knight/0.png"); addSprite(sdMap->TowerKnight, "data/towers/knight/2.png"); addSprite(sdMap->TowerKnight, "data/towers/knight/1.png"); sdMap->TowerMage = newSprite(); addSprite(sdMap->TowerMage, "data/towers/mage/0.png"); addSprite(sdMap->TowerMage, "data/towers/mage/1.png"); addSprite(sdMap->TowerMage, "data/towers/mage/2.png"); sdMap->Cursor = newSprite(); addSprite(sdMap->Cursor, "data/interface/cursor.png"); sdMap->Range = newSprite(); addSprite(sdMap->Range, "data/interface/range.png"); sdMap->InterfaceBackground = newSprite(); addSprite(sdMap->InterfaceBackground, "data/interface/background/0.png"); addSprite(sdMap->InterfaceBackground, "data/interface/background/1.png"); //Init sdl_ttf if(TTF_Init() == -1) { fprintf(stderr, "Erreur d'initialisation de TTF_Init : %s\n", TTF_GetError()); exit(EXIT_FAILURE); } //Chargement des polices sdMap->policeMax = TTF_OpenFont("data/font.ttf", 70); sdMap->police = TTF_OpenFont("data/font.ttf", 20); sdMap->policeMin = TTF_OpenFont("data/font.ttf", 12); SDL_EnableKeyRepeat(100, 100); //Init de options setSdlMapSpeed(sdMap,0); setSdlMapMode(sdMap,0); }
void demoplaybackstep() { while (demoplayback && lastmillis >= playbacktime) { int len = gzgeti(); if (len < 1 || len > MAXTRANS) { conoutf("error: huge packet during demo play (%d)", len); stopreset(); return; }; uchar buf[MAXTRANS]; gzread(f, buf, len); localservertoclient(buf, len); // update game state Sprite *target = players[democlientnum]; assert(target); int extras; if (extras = gzget()) // read additional client side state not present in normal network stream { target->gunselect = gzget(); target->lastattackgun = gzget(); target->lastaction = scaletime(gzgeti()); target->gunwait = gzgeti(); target->health = gzgeti(); target->armour = gzgeti(); target->armourtype = gzget(); loopi(NUMGUNS) target->ammo[i] = gzget(); target->state = gzget(); target->lastmove = playbacktime; if (bdamage = gzgeti()) damageblend(bdamage); if (ddamage = gzgeti()) { gzgetv(dorig); particle_splash(3, ddamage, 1000, dorig); }; // FIXME: set more client state here }; // insert latest copy of player into history if (extras && (playerhistory.empty() || playerhistory.back()->lastupdate != playbacktime)) { Sprite *d = newSprite(); *d = *target; d->lastupdate = playbacktime; playerhistory.emplace_back(d); if (playerhistory.size() > 20) { zapSprite(playerhistory[0]); playerhistory.erase(playerhistory.begin()); }; }; readdemotime(); }; if (demoplayback) { int itime = lastmillis - demodelaymsec; for (int i = playerhistory.size() - 1; i >= 0; --i) if (playerhistory[i]->lastupdate < itime) // find 2 positions in history that surround interpolation time point { Sprite *a = playerhistory[i]; Sprite *b = a; if (i + 1 < playerhistory.size()) b = playerhistory[i + 1]; *player1 = *b; if (a != b) // interpolate pos & angles { Sprite *c = b; if (i + 2 < playerhistory.size()) c = playerhistory[i + 2]; Sprite *z = a; if (i - 1 >= 0) z = playerhistory[i - 1]; //if(a==z || b==c) printf("* %d\n", lastmillis); float bf = (itime - a->lastupdate) / (float) (b->lastupdate - a->lastupdate); fixwrap(a, player1); fixwrap(c, player1); fixwrap(z, player1); vdist(dist, v, z->o, c->o); if (dist < 16) // if teleport or spawn, dont't interpolate { catmulrom(z->o, a->o, b->o, c->o, bf, player1->o); catmulrom(*(Vec3 *) &z->yaw, *(Vec3 *) &a->yaw, *(Vec3 *) &b->yaw, *(Vec3 *) &c->yaw, bf, *(Vec3 *) &player1->yaw); }; fixplayer1range(); }; break; }; //if(player1->state!=CS_DEAD) showscores(false); }; }