GameWidget::GameWidget(QWidget *parent, const char *name) : QWidget(parent, name) { in_game = false; in_pause = false; random.setSeed(0); loadSprites(); setPieces(Pieces_Smiles); map = new Sprite[scr_width * scr_height]; mirror_sprites = new Sprite[scr_width]; screen = new ScreenWidget(sprites, &in_game, &in_pause, this); screen->move(10, 10); screen->setScreenSprites(map); mirror = new MirrorWidget(sprites, &in_game, &in_pause, this); mirror->move(10, 407); mirror->setMirrorSprites(mirror_sprites); next = new NextPieceWidget(sprites, &in_game, &in_pause, this); next->move(278, 10); next->setNextPieceSprites(next_piece); timer = new QTimer(this); connect(timer, SIGNAL(timeout()), this, SLOT(timeout())); }
void t_chessGui::run() { chessCegui.init(); loadImages(); loadSprites(); initCegui(); initServer(); initConnect(); RedBox = sf::Shape::Rectangle(0,0,100,100,sf::Color(255,0,0)); BlackBox = sf::Shape::Rectangle(0,0,100,100,sf::Color(0,255,0)); BlueBox = sf::Shape::Rectangle(0,0,100,100,sf::Color(0,0,255)); BrownBox = sf::Shape::Rectangle(0,0,100,100,sf::Color(255,255,0)); PurpleBox = sf::Shape::Rectangle(0,0,100,100,sf::Color(160,32,240)); PinkBox = sf::Shape::Rectangle(0,0,100,100,sf::Color(255,182,193)); while (App.IsOpened()) { processEvents(); checkBuffer(); App.Clear(); drawBoard(); CEGUI::System::getSingleton().renderGUI(); App.Display(); } return; }
void KBounceWall::resize( const QSize& tileSize ) { if ( tileSize != s_tileSize ) { s_tileSize = tileSize; loadSprites(); update(); } }
const QList<KSprite::Frame>& KSprite::frames() const { if ( !frameshape ) { if(!spritesLoaded_) loadSprites(); frameshape = &shapemap_[type()]; } return *frameshape; }
SpriteAnimator::SpriteAnimator(string file, int numberOfSprites, float fps) { nSprites = numberOfSprites; loadSprites(file); Sprite* sprite = new Sprite(); sprite->initWithTexture(sprites[0]); image = new CentSprite(sprite, 0, 0, 0, 0); internalTimer = CatacombTimer(1 / fps); initialPosition = Vector2F(0, 0); }
Player::Player() { type = ObjectTypes::Player; transform.SetXSpeed(PLAYER_SPEED); transform.SetYSpeed(PLAYER_SPEED); spawn(); numberOfSprite = 4; currentSprite = 0; animDuration = 50; lifePoints = START_LP; transform.setXRotation(0); transform.setYRotation(1); loadSprites(); loadSpriteSize(); }
//Initializes SDL graphics. void graphics_start() // { TTF_Init(); SetFont(24); if(SDL_Init(SDL_INIT_VIDEO) < 0) { printf("Could not initialize SDL! SDL_Error: %s\n", SDL_GetError()); } else { window = SDL_CreateWindow("Outbreak Zombol City v0.8", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN); if(window == NULL) { printf("Window could not be created! SDL_Error: %s\n", SDL_GetError()); } else { gRenderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED); if(gRenderer == NULL) { printf("Could not create renderer! SDL_Error: %s\n", SDL_GetError()); } else { //Initialize renderer color SDL_SetRenderDrawColor(gRenderer, 0xFF, 0xFF, 0xFF, 0xFF); //Initialize PNG loading int imgFlags = IMG_INIT_PNG; if( !( IMG_Init( imgFlags ) & imgFlags ) ) { printf( "SDL_image could not initialize! SDL_image Error: %s\n", IMG_GetError() ); } //Loads all sprites in to the game. loadSprites(); } } } printf("Graphics initialized successfully!\n"); }
bool CVorticonMapLoaderWithPlayer::load( Uint8 episode, Uint8 level, const std::string& path, bool loadNewMusic, bool stategame ) { if( !loadBase( episode, level, path, loadNewMusic ) ) { return false; } if( !stategame ) { loadSprites(episode, level ); } // Set Map Delegation Object and refresh whole level mpMap->drawAll(); gVideoDriver.updateScrollBuffer( mpMap->m_scrollx, mpMap->m_scrolly ); return true; }
int main(int argc, char* argv[]) { unsigned int largeurNiveau = 0, hauteurNiveau = 0; unsigned int numLvl = 1; Niveau level; LevelError code_e; CoupsJoues pileDeCoups = NULL; Coup* coupDepile = NULL; PileCible pileDeCibles = NULL; char cheminFichierSolution[27] = {0}; FILE* fichierSolution = NULL; Position positionJoueur; unsigned int nbPoussee = 0, nbMvt = 0; char continuerBoucle = 1; SDLInitError sdl_e; SDL_Surface *ecran; SDL_Event event; SDL_Surface** tableauSprites = NULL; if(argc > 1) { numLvl = atoi(argv[1]); } code_e = readLevel(FICHIER_NIVEAUX, &level, numLvl, &largeurNiveau, &hauteurNiveau, &positionJoueur, &pileDeCibles); if(code_e != NoError) { fprintf(stderr, "(%d) Erreur de lecture du fichier de niveau \"%s\".\n", code_e, FICHIER_NIVEAUX); libererPileCible(&pileDeCibles); freeNiveau(&level, hauteurNiveau); exit(EXIT_FAILURE); } sdl_e = initSDL(&ecran); if(sdl_e != InitOk) { fprintf(stderr, "(%d) Erreur lors de initSDL(SDL_Surface**).\n", sdl_e); libererPileCible(&pileDeCibles); freeNiveau(&level, hauteurNiveau); freeSDL(NULL); exit(EXIT_FAILURE); } tableauSprites = (SDL_Surface**)malloc(NB_SPRITE * sizeof(SDL_Surface*)); if(tableauSprites == NULL) { fprintf(stderr, "Erreur d'allocation du tableau de sprites.\n"); libererPileCible(&pileDeCibles); freeNiveau(&level, hauteurNiveau); freeSDL(NULL); exit(EXIT_FAILURE); } sdl_e = loadSprites(&tableauSprites); if(sdl_e != InitOk) { fprintf(stderr, "(%d) Erreur de chargement des sprites dans le tableau de sprites.\n", sdl_e); libererPileCible(&pileDeCibles); freeNiveau(&level, hauteurNiveau); freeSDL(&tableauSprites); exit(EXIT_FAILURE); } printf("Niveau %d\n", numLvl); afficheNiveau(&level, largeurNiveau, hauteurNiveau); dessineEntete(ecran); dessineCompteurs(ecran, nbMvt, nbPoussee); dessineNiveau(&level, ecran, largeurNiveau, hauteurNiveau, &tableauSprites); while (continuerBoucle) { while(SDL_PollEvent(&event)) { switch(event.type) { case SDL_QUIT: continuerBoucle = 0; break; case SDL_KEYDOWN: switch (event.key.keysym.sym) { case SDLK_ESCAPE: continuerBoucle = 0; break; case SDLK_UP: arrowKeyDownHandler(HAUT, &level, &positionJoueur, &pileDeCoups, &nbMvt, &nbPoussee); break; case SDLK_DOWN: arrowKeyDownHandler(BAS, &level, &positionJoueur, &pileDeCoups, &nbMvt, &nbPoussee); break; case SDLK_RIGHT: arrowKeyDownHandler(DROITE, &level, &positionJoueur, &pileDeCoups, &nbMvt, &nbPoussee); break; case SDLK_LEFT: arrowKeyDownHandler(GAUCHE, &level, &positionJoueur, &pileDeCoups, &nbMvt, &nbPoussee); break; case SDLK_r: libererPile(&pileDeCoups); code_e = updateLevel(LevelReset, FICHIER_NIVEAUX, &level, &positionJoueur, &pileDeCibles, &numLvl, &largeurNiveau, &hauteurNiveau); if(code_e != NoError) { fprintf(stderr, "(%d) Erreur lors du redemarrage du niveau.\n", code_e); libererPileCible(&pileDeCibles); freeNiveau(&level, hauteurNiveau); freeSDL(&tableauSprites); exit(EXIT_FAILURE); } nbMvt = 0; nbPoussee = 0; break; case SDLK_e: libererPile(&pileDeCoups); code_e = updateLevel(LevelPrevious, FICHIER_NIVEAUX, &level, &positionJoueur, &pileDeCibles, &numLvl, &largeurNiveau, &hauteurNiveau); if(code_e != NoError) { fprintf(stderr, "(%d) Erreur lors du passage au niveau precedent.\n", code_e); libererPileCible(&pileDeCibles); freeNiveau(&level, hauteurNiveau); freeSDL(&tableauSprites); exit(EXIT_FAILURE); } nbMvt = 0; nbPoussee = 0; printf("Niveau %d\n", numLvl); afficheNiveau(&level, largeurNiveau, hauteurNiveau); break; case SDLK_t: sprintf(cheminFichierSolution, "./save/level%d.sol", numLvl); fichierSolution = fopen(cheminFichierSolution, "r"); if(fichierSolution != NULL) { fclose(fichierSolution); libererPile(&pileDeCoups); code_e = updateLevel(LevelNext, FICHIER_NIVEAUX, &level, &positionJoueur, &pileDeCibles, &numLvl, &largeurNiveau, &hauteurNiveau); if(code_e != NoError) { fprintf(stderr, "(%d) Erreur lors du passage au niveau suivant.\n", code_e); libererPileCible(&pileDeCibles); freeNiveau(&level, hauteurNiveau); freeSDL(&tableauSprites); exit(EXIT_FAILURE); } nbMvt = 0; nbPoussee = 0; printf("Niveau %d\n", numLvl); afficheNiveau(&level, largeurNiveau, hauteurNiveau); } break; case SDLK_w: /* NB: ceci est la version windows, allez savoir pourquoi SDL prend le clavier en qwerty */ if ((event.key.keysym.mod & KMOD_LCTRL) == KMOD_LCTRL) { coupDepile = depilerCoup(&pileDeCoups); if(coupDepile != NULL) { deplacerObjetRetour(&level, *coupDepile, &nbMvt, &nbPoussee); calculPosition(&positionJoueur, (*coupDepile).direction, Negatif); free(coupDepile); } } break; case SDLK_q: /* NB: ceci est la version windows, allez savoir pourquoi SDL prend le clavier en qwerty */ creerFichierSauvegarde(Sauvegarde, numLvl, &pileDeCoups); break; case SDLK_a: /* NB: ceci est la version windows, allez savoir pourquoi SDL prend le clavier en qwerty */ chargerFichierSauvegarde(numLvl, &pileDeCoups, &level, &positionJoueur, &pileDeCibles, &nbMvt, &nbPoussee); break; default: break; } if(toutesCiblesValidees(&pileDeCibles, &level) == CibleValidee) { printf("Niveau %d termine en %d mouvements et en %d poussees ! \n", numLvl, nbMvt, nbPoussee); creerFichierSauvegarde(Solution, numLvl, &pileDeCoups); libererPile(&pileDeCoups); code_e = updateLevel(LevelNext, FICHIER_NIVEAUX, &level, &positionJoueur, &pileDeCibles, &numLvl, &largeurNiveau, &hauteurNiveau); if(code_e != NoError) { fprintf(stderr, "(%d) Erreur lors du passage au niveau suivant.\n", code_e); libererPileCible(&pileDeCibles); freeNiveau(&level, hauteurNiveau); freeSDL(&tableauSprites); exit(EXIT_FAILURE); } nbMvt = 0; nbPoussee = 0; printf("Niveau %d\n", numLvl); afficheNiveau(&level, largeurNiveau, hauteurNiveau); } break; default: break; } } effacerNiveau(ecran); dessineEntete(ecran); dessineCompteurs(ecran, nbMvt, nbPoussee); dessineNiveau(&level, ecran, largeurNiveau, hauteurNiveau, &tableauSprites); SDL_Flip(ecran); SDL_Delay(20); } libererPile(&pileDeCoups); libererPileCible(&pileDeCibles); freeNiveau(&level, hauteurNiveau); freeSDL(&tableauSprites); return EXIT_SUCCESS; }
OrionMenuView::OrionMenuView(M4Engine *Vm, int x, int y, MenuType menuType, bool calledFromMainMenu, bool loadSaveFromHotkey): DialogView(Vm, x, y, true) { _menuType = menuType; _screenType = VIEWID_MENU; _screenFlags.layer = LAYER_MENU; _screenFlags.get = SCREVENT_ALL; _screenFlags.blocks = SCREVENT_ALL; _screenFlags.immovable = true; //_screenFlags.immovable = false; // uncomment to make menu movable _coords.left = x; _coords.top = y; _currentItem = NULL; _escapeHandler = &OrionCallbacks::closeMenuFn; _returnHandler = NULL; _saveNames = NULL; _savegameThumbnail = NULL; _deleteSaveDesc = false; _closeFlag = false; _calledFromMainMenu = calledFromMainMenu; _loadSaveFromHotkey = loadSaveFromHotkey; _interfaceWasVisible = _vm->_interfaceView->isVisible(); if (_interfaceWasVisible) _vm->_interfaceView->hide(); _vm->_mouse->setCursorNum(CURSOR_ARROW); switch (menuType) { case GAME_MENU: loadSprites(MENU_GAME); // Add menu contents _menuObjects.push_back(new MenuButton(this, BTNID_MAIN, 45, 53, 24, 24, &OrionCallbacks::closeMenuFn)); _menuObjects.push_back(new MenuButton(this, BTNID_OPTIONS, 45, 94, 24, 24, &OrionCallbacks::gameOptionsMenuFn)); _menuObjects.push_back(new MenuButton(this, BTNID_RESUME, 45, 135, 24, 24, &OrionCallbacks::closeMenuFn)); _menuObjects.push_back(new MenuButton(this, BTNID_QUIT, 141, 135, 24, 24, &OrionCallbacks::gameExitFn)); _menuObjects.push_back(new MenuButton(this, BTNID_SAVE, 141, 53, 24, 24, &OrionCallbacks::gameSaveGameFn, _calledFromMainMenu)); _menuObjects.push_back(new MenuButton(this, BTNID_LOAD, 141, 94, 24, 24, &OrionCallbacks::gameLoadGameFn, !_vm->_saveLoad->hasSaves())); _escapeHandler = &OrionCallbacks::closeMenuFn; _returnHandler = &OrionCallbacks::closeMenuFn; break; case OPTIONS_MENU: loadSprites(MENU_OPTIONS); // Store the original settings in case user aborts dialog _originalMidiVolume = _vm->midi()->getVolume(); // Add menu contents // TODO: Currently the Digi slider isn't hooked up to anything _menuObjects.push_back(new MenuButton(this, OPTIONID_CANCEL, 93, 141, 74, 43, &OrionCallbacks::optionsCancelFn, false, false, OBJTYPE_OM_CANCEL)); _menuObjects.push_back(new MenuButton(this, OPTIONID_DONE, 168, 141, 74, 43, &OrionCallbacks::optionsDoneFn, false, false, OBJTYPE_OM_DONE)); _menuObjects.push_back(new MenuHorizSlider(this, OPTIONID_HSLIDER_MIDI, 47, 64, 212, 24, _originalMidiVolume * 100 / 255, &OrionCallbacks::optionsMidiSliderFn, true)); _menuObjects.push_back(new MenuHorizSlider(this, OPTIONID_HSLIDER_DIGI, 47, 104, 212, 24, 0, &OrionCallbacks::optionsDigiSliderFn, true)); _escapeHandler = &OrionCallbacks::optionsEscapeFn; _returnHandler = &OrionCallbacks::optionsReturnFn; break; case SAVE_MENU: case LOAD_MENU: loadSprites(MENU_SAVELOAD); // Set up the defaults for the window _topSaveSlotIndex = 0; _selectedSlot = -1; _highlightedSlot = -1; _saveNames = _vm->_saveLoad->getSaves(); // Set up menu elements _menuObjects.push_back(new MenuMessage(this, SLTAG_SAVELOAD_LABEL, 50, 241, 70, 16)); _menuObjects.push_back(new MenuButton(this, SLTAG_SAVELOAD, 214, 384, 72, 41, (menuType == SAVE_MENU) ? &OrionCallbacks::saveLoadSaveFn : &OrionCallbacks::saveLoadLoadFn, true, true, (menuType == SAVE_MENU) ? OBJTYPE_SL_SAVE : OBJTYPE_SL_LOAD)); _menuObjects.push_back(new MenuButton(this, SLTAG_CANCEL, 139, 384, 74, 43, &OrionCallbacks::saveLoadCancelFn, false, false, OBJTYPE_SL_CANCEL)); _menuObjects.push_back(new MenuVertSlider(this, SLTAG_VSLIDER, 291, 255, 23, 127, 0, &OrionCallbacks::saveLoadSliderFn)); if (_menuType == SAVE_MENU) _savegameThumbnail = createThumbnail(); _menuObjects.push_back(new MenuImage(this, SLTAG_THUMBNAIL, 66, 28, 215, 162, (_savegameThumbnail == NULL) ? _sprites->getFrame(SL_EMPTY_THUMBNAIL) : _savegameThumbnail)); { SaveGameIterator slot = _saveNames->begin(); for (uint slotIndex = 0; slotIndex < SL_NUM_VISIBLE_SLOTS; ++slotIndex, ++slot) { // Get save slot bool isEmpty = (slotIndex >= _saveNames->size()) || (*slot).empty(); _menuObjects.push_back(new MenuSaveLoadText(this, SLTAG_SLOTS_START + slotIndex, 50, 256 + slotIndex * 15, 238, 15, &OrionCallbacks::saveLoadSlotFn, (menuType == LOAD_MENU) && isEmpty, true, (menuType == LOAD_MENU), isEmpty ? EmptySaveString : slot->c_str(), slotIndex + 1)); } } _escapeHandler = &OrionCallbacks::saveLoadEscapeFn; _returnHandler = &OrionCallbacks::saveLoadReturnFn; break; default: error("Unknown menu type"); break; } // Draw all the items onto the background surface for (MenuObjectsIterator i = _menuObjects.begin(); i != _menuObjects.end(); ++i) (*i)->onRefresh(); }
void GameSpriteManager::load() { int tabSize, size; uint8 *tabData, *data; #if 1 // using http://rtfm.insomnia.org/~qg/syndicate.zip tabData = File::loadFile("hspr-0.tab", tabSize); data = File::loadFile("hspr-0.dat", size); printf("Loaded %d sprites from hspr-0.dat\n", tabSize / 6); loadSprites(tabData, tabSize, data); delete[] tabData; delete[] data; #else tabData = File::loadFile("hspr-0-d.tab", tabSize); data = File::loadFile("hspr-0-d.dat", size); printf("Loading %d sprites from hspr-0-d.dat\n", tabSize / 6); loadSprites(tabData, tabSize, data); delete[] tabData; delete[] data; #endif FILE *fp = File::loadTextFile("HELE-0.TXT"); if (fp) { char line[1024]; while (fgets(line, 1024, fp)) { GameSpriteFrameElement e; char flipped; if (*line == '#') continue; sscanf(line, "%i %i %i %c %i", &e.sprite_, &e.off_x_, &e.off_y_, &flipped, &e.next_element_); e.flipped_ = (flipped == 'f'); elements_.push_back(e); } for (unsigned int i = 0; i < elements_.size(); i++) assert(elements_[i].next_element_ < (int)elements_.size()); fclose(fp); } else { // try original data file data = File::loadFile("HELE-0.ANI", size); assert(size % 10 == 0); for (int i = 0; i < size / 10; i++) { GameSpriteFrameElement e; e.sprite_ = data[i * 10] | (data[i * 10 + 1] << 8); assert(e.sprite_ % 6 == 0); e.sprite_ /= 6; e.off_x_ = data[i * 10 + 2] | (data[i * 10 + 3] << 8); e.off_y_ = data[i * 10 + 4] | (data[i * 10 + 5] << 8); e.flipped_ = (data[i * 10 + 6] | (data[i * 10 + 7] << 8)) != 0 ? true : false; e.next_element_ = data[i * 10 + 8] | (data[i * 10 + 9] << 8); if (e.off_x_ & (1 << 15)) e.off_x_ = -(65536 - e.off_x_); if (e.off_y_ & (1 << 15)) e.off_y_ = -(65536 - e.off_y_); assert(e.next_element_ < size / 10); elements_.push_back(e); } delete[] data; } printf("loaded %i frame elements\n", elements_.size()); for (unsigned int i = 0; i < elements_.size(); i++) { int esprite = elements_[i].sprite_; if (esprite) { char tmp[1024]; sprintf(tmp, "sprites/%i.png", esprite); sprites_[esprite].loadSpriteFromPNG(tmp); } } fp = File::loadTextFile("HFRA-0.TXT"); if (fp) { char line[1024]; while (fgets(line, 1024, fp)) { GameSpriteFrame f; if (*line == '#') continue; sscanf(line, "%i %i %i %i %i", &f.first_element_, &f.width_, &f.height_, &f.flags_, &f.next_frame_); assert(f.first_element_ < (int) elements_.size()); frames_.push_back(f); } for (unsigned int i = 0; i < frames_.size(); i++) assert(frames_[i].next_frame_ < (int)frames_.size()); fclose(fp); } else { // try original data file data = File::loadFile("HFRA-0.ANI", size); assert(size % 8 == 0); for (int i = 0; i < size / 8; i++) { GameSpriteFrame f; f.first_element_ = data[i * 8] | (data[i * 8 + 1] << 8); assert(f.first_element_ < (int) elements_.size()); f.width_ = data[i * 8 + 2]; f.height_ = data[i * 8 + 3]; f.flags_ = data[i * 8 + 4] | (data[i * 8 + 5] << 8); f.next_frame_ = data[i * 8 + 6] | (data[i * 8 + 7] << 8); assert(f.next_frame_ < size / 8); frames_.push_back(f); } delete[] data; } printf("loaded %i frames\n", frames_.size()); fp = File::loadTextFile("HSTA-0.TXT"); if (fp) { char line[1024]; while (fgets(line, 1024, fp)) { int index; if (*line == '#') continue; sscanf(line, "%i", &index); assert(index < (int) frames_.size()); index_.push_back(index); } fclose(fp); } else { // try original data file data = File::loadFile("HSTA-0.ANI", size); assert(size % 2 == 0); for (int i = 0; i < size / 2; i++) { index_.push_back(data[i * 2] | (data[i * 2 + 1] << 8)); assert(index_[i] < (int) frames_.size()); } delete[] data; } printf("index contains %i animations\n", index_.size()); }