コード例 #1
0
ファイル: Scenario.cpp プロジェクト: JAGormley/Wandering
void Scenario::setNew(){
    reset();
    
    
    // ensure the seed is populated before anything else is set
    seed.populate(history);
    
    // set the environment to new seed values
    environment = new Environment(*getSurface(), *getMedium());
    
    // TODO: move mesh into setSurface method for Sprites
    spriteSeed = SpriteSeed(seed, environment->getSurfaceMesh());
    
    // set light to new seed values
    light = getLight();
    
    // set surface first, then set the player to new seed values
    player.setSurface(environment->getSurfaceMesh());
    setPlayer(seed);
    
    sprites.clear();
    setSprites();
//    sound.loadMusic();
//    sound.playMusic();

}
コード例 #2
0
ファイル: main.cpp プロジェクト: rimlester/Soundboard
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){
    sf::SoundBuffer soundBuffers[NUM_COL][MAX_PER_COL];
    sf::Sound sounds[NUM_COL][MAX_PER_COL];
    sf::Image buttons[NUM_COL][MAX_PER_COL];
    sf::Sprite btns[NUM_COL][MAX_PER_COL];
    sf::RenderWindow mainWin(sf::VideoMode(W_WIDTH, W_HEIGHT, 32), "Soundboard - by eyeosk", sf::Style::Close);
    sf::Image background;
    sf::Image header;
    sf::Sprite bg;
    sf::Sprite hd;
    hd.SetY(0);
    hd.SetX(W_WIDTH/4);
    bg.SetX(0);
    bg.SetY(0);
    background.LoadFromFile("background.png");
    header.LoadFromFile("header.png");
    bg.SetImage(background);
    hd.SetImage(header);
    int numInCol[NUM_COL];
    for(int i = 0; i < NUM_COL; i++){
        loadBuffers(soundBuffers[i], i);
        numInCol[i] = loadImages(buttons[i], i);
        setSprites(buttons[i], btns[i], numInCol[i]);
        setBuffers(soundBuffers[i], sounds[i], numInCol[i]);
        setSpritesPos(btns[i], i, numInCol[i]);
    }
    mainWin.SetFramerateLimit(360);
    while(mainWin.IsOpened()){
        sf::Event mainEvent;
        while(mainWin.GetEvent(mainEvent)){
            if(mainEvent.Type == sf::Event::Closed  || (mainEvent.Type == sf::Event::KeyPressed && mainEvent.Key.Code == sf::Key::Escape)){
                mainWin.Close();
            }
            if(mainEvent.Type == sf::Event::MouseButtonPressed){
                for(int i = 0; i < NUM_COL; i++){
                    for(int j = 0; j < numInCol[i]; j++){
                        if(checktangle(i, j, mainEvent.MouseButton.X, mainEvent.MouseButton.Y)){
                            sounds[i][j].Play();
                        }
                    }
                }
            }
        }
        mainWin.Clear();
        mainWin.Draw(bg);
        mainWin.Draw(hd);
        for(int i =0; i < NUM_COL; i++){
            for(int j = 0; j < numInCol[i]; j++){
                mainWin.Draw(btns[i][j]);
            }
        }
        mainWin.Display();
    }
    return 0;
}
コード例 #3
0
void SpriteStore::emitSpriteLoadedIfComplete() {
    assert(loader);

    if (!loader->image || !loader->json) {
        return;
    }

    auto local = std::move(loader);
    auto result = parseSprite(*local->image, *local->json);
    if (result.is<Sprites>()) {
        loaded = true;
        setSprites(result.get<Sprites>());
        observer->onSpriteLoaded();
    } else {
        observer->onSpriteError(result.get<std::exception_ptr>());
    }
}
コード例 #4
0
void SpriteStore::emitSpriteLoadedIfComplete() {
    assert(loader);

    if (!loader->image || !loader->json) {
        return;
    }

    auto local = std::move(loader);
    auto result = parseSprite(*local->image, *local->json);
    if (result.is<Sprites>()) {
        loaded = true;
        setSprites(result.get<Sprites>());
        if (observer) {
            observer->onSpriteLoaded();
        }
    } else {
        emitSpriteLoadingFailed(result.get<std::string>());
    }
}
コード例 #5
0
THMapTypicalOverlay::~THMapTypicalOverlay()
{
    setSprites(NULL, false);
    setFont(NULL, false);
}
コード例 #6
0
THMapTypicalOverlay::~THMapTypicalOverlay()
{
    setSprites(nullptr, false);
    setFont(nullptr, false);
}