Window::Window():
 m_carsor(0),
 m_rect(GMRect2D(0, 0)),
 m_Color(GMColor::Black),
 m_time(0){
     m_Color.a = 0.5;
 }
Esempio n. 2
0
/*
    このシーンが表示されるときに呼ばれます。
 */
void FireScene::willAppear(GMGraphics* g)
{
    // 基本のシェーダ、2Dテクスチャ描画用のバッチ
    mBasicEffect = new GMBasicEffect();
    mSpriteBatch = new GMSpriteBatch();

    // 2D用画面設定
    GMVector2D screenSize = g->getScreenSize();
    mBasicEffect->setProjectionMatrix(GMMatrix::CreateOrthographicOffCenter(0.0, screenSize.x, 0.0, screenSize.y, -1.0, 1.0));
    mBasicEffect->setViewMatrix(GMMatrix::Identity);
    mBasicEffect->enableLighting(false);

    g->enableDepthTest(false);

    // 「次へ」ボタン
    mNextButton = new GMButton(GMRect2D(10, screenSize.y-48, 140, 38), "next_button.png");

    // タイトル文字列のセットアップ
    mTitleLabel = new GMLabel("Verdana", 40.0);
    mTitleLabel->setText("Fire Explosion");

    // パーティクルのセットアップ
    mParticleSystem = new GMParticleSystem2D("particle_smoke_128.png");
    mParticleSystem->setCenterPos(GMVector2D(screenSize.x/2, screenSize.y/2-20));
    mParticleSystem->setLife(60);
    
    mParticleSystem2 = new GMParticleSystem2D("particle_fire_128.png");
    mParticleSystem2->setCenterPos(GMVector2D(screenSize.x/2, screenSize.y/2));
    mParticleSystem2->setLife(10);
    
    mMovingCenterPos = false;
}
 void CharacterRetireLeady::draw(GMSpriteBatch *s){
     sizurus_fonts::SKFont::drawCharacter
     (m_character->getCharacter().c_str(),
      s,
      GMRect2D(m_character->getEndPos(), 50),
      m_character->getColor(),
      0,
      GMVector2D(0.5, 0.5));
 }
 void BaseArea::draw(GMSpriteBatch* s){
     m_prevChild->draw(s);
     gPlayScene->getCurrentEffect()->begin();
     s->begin();
     GMColor blue = GMColor::Blue;
     blue.a = m_time;
     s->fill(GMRect2D(0, SCREEN_SIZE), blue);
     s->end();
     gPlayScene->getCurrentEffect()->end();
 }
 void CharacterRetire::draw(GMSpriteBatch* s){
     GMColor c = m_character->getColor();
     c.a = 1-this->m_time;
     sizurus_fonts::SKFont::drawCharacter
     (m_character->getCharacter().c_str(),
      s,
      GMRect2D(m_character->getEndPos(), 50),
      c,
      m_character->getAngle(),
      GMVector2D(0.5, 0.5));
 }
 Window::Window():
 m_WindowRect(GMRect2D(25, 25, 950, 150)),
 m_color(GMColor::Black),
 m_state(0),
 m_returnKey(-1),
 m_nextReturnKey(-1),
 m_isLockInput(0)
 {
     m_color.a = 0.5;
     m_state = new WindowState(this);
 }
 SceneStateChild* MapInterYesOrNo::update(GMInput* input, double deltaTime){
     SceneStateChild* next = this;
     m_time += deltaTime;
     if(m_time >= 1){
         m_time = 1;
     }
     if(m_questionWin){
         if(selectWindow::Element* select = m_questionWin->update(input, deltaTime)){
             if(select->getLabel() == "いいよ"){
                 m_user->getJaSpkWin()->addString("じゃあ、移動するわ。", select_ChangeArea);
             }else if(select->getLabel() == "やめとく"){
                 m_user->getJaSpkWin()->addString("そう。", select_backAreaSelect);
             }else if(select->getLabel() == "ねえ、そこってどんな場所?"){
                 m_user->getJaSpkWin()->addString("未実装よー", select_BackCarsorSelect);
             }
             m_user->getJaSpkWin()->setKey(-1);
             delete m_questionWin;
             m_questionWin = 0;
         }
     }else{
         if(m_user->getJaSpkWin()->getKey() == select_BackCarsorSelect && input->isKeyDownTriggered(GMKeyMaskZ|GMKeyMaskReturn)){
             m_user->getJaSpkWin()->setKey(99);
         }else if(m_user->getJaSpkWin()->getKey() == select_backAreaSelect && input->isKeyDownTriggered(GMKeyMaskZ|GMKeyMaskReturn)){
             m_user->getJaSpkWin()->setKey(-1);
             next = new CarsorMove(m_user);
         }else if(m_user->getJaSpkWin()->getKey() == select_ChangeArea && input->isKeyDownTriggered(GMKeyMaskZ|GMKeyMaskReturn)){
             m_user->getJaSpkWin()->setKey(-1);
             gPlayScene->changeScene(new baseArea::SKBaseAreaScene(m_user->getCarsor()->getCurrentObj()->Name()));
         }else if(m_user->getJaSpkWin()->getKey() == 99){
             m_questionWin = new selectWindow::Window;
             selectWindow::Element* elems[] = {
                 new selectWindow::Element(m_questionWin),
                 new selectWindow::Element(m_questionWin),
                 new selectWindow::Element(m_questionWin),
             };
             elems[0]->setLabel("いいよ");
             elems[1]->setLabel("やめとく");
             elems[2]->setLabel("ねえ、そこってどんな場所?");
             selectWindow::Carsor* carsor = new selectWindow::Carsor(m_questionWin);
             m_questionWin->setCarsor(carsor);
             elems[0]->setCarsor(carsor);
             for(int i = 0; i < 3; i++){
                 elems[i]->setRect(GMRect2D(SCREEN_SIZE.x/2-200, SCREEN_SIZE.y-50-i*50, 650, 50));
                 m_questionWin->addElement(elems[i]);
             }
             m_user->getJaSpkWin()->setKey(-1);
         }else if(m_is2Select){
             next = new CarsorMove(m_user);
         }
     }
     return next;
 }
Esempio n. 8
0
 void TileLayer::draw(GMSpriteBatch *s){
     const GMVector2D& p_pos = m_parent->getBaseAreaScene()->getCharMan()->getPlayer()->getPos();
     int start_x = std::max(((int)(p_pos.x)-11), 0);
     int end_x = std::min(((int)(p_pos.x)+12), m_width);
     int start_y = std::max(((int)(-p_pos.y)-7), 0);
     int end_y = std::min(((int)(-p_pos.y)+8), m_height);
     for(int y = start_y; y < end_y; y++){
         for(int x = start_x; x < end_x; x++){
             GMVector2D TileDestPoint = SKBaseAreaScene::convertMat2Draw(GMVector2D(x, y));
             m_Tiles[y*m_width+x]->draw(s, GMRect2D(TileDestPoint, SKBaseAreaScene::getTileDestSize()));
         }
     }
 }
Esempio n. 9
0
 bool TileLayer::isCollision(const GMRect2D& rect) const{
     int start_x = std::max(((int)(rect.x)-2), 0);
     int end_x = std::min(((int)(rect.x)+2), m_width);
     int start_y = std::max(((int)(-rect.y)-2), 0);
     int end_y = std::min(((int)(-rect.y)+2), m_height);
     for(int y = start_y; y < end_y; y++){
         for(int x = start_x; x < end_x; x++){
             if(m_Tiles[y*m_width+x]->getGid()){
                 if(rect.intersects(GMRect2D(x, -y-1, 1, 1))){
                     return true;
                 }
             }
         }
     }
     return false;
 }
Esempio n. 10
0
void StatusUI::draw(GMSpriteBatch *s) const{
    GMColor c = GMColor::SkyBlue;
    c.a = 0.2;
    
    s->draw(0, GMVector2D(50, SCREEN_SIZE.y-100), GMRect2D(50, SCREEN_SIZE.y-100, SCREEN_SIZE.x-100, 100), c);
    
    // TODO: ステータスUIの実装
    GMFont* f = gGameInst->getFont();
    std::ostringstream oss;
    oss << " " << m_scene->getMassMan()->getKaisou() << "F  "
    << "Lv" << 1
    << "  HP" << m_scene->getPlayer()->getHp()
    << "/" << 100
    << "      " << 0 << "G";
    std::string str = oss.str();
    f->drawString(s, str, GMVector2D(50, SCREEN_SIZE.y - 50));
}
Esempio n. 11
0
 const std::string TileLayer::isCollisionANDGetNumberingStr(const GMRect2D& rect) const{
     int start_x = std::max(((int)(rect.x)-2), 0);
     int end_x = std::min(((int)(rect.x)+2), m_width);
     int start_y = std::max(((int)(-rect.y)-2), 0);
     int end_y = std::min(((int)(-rect.y)+2), m_height);
     for(int y = start_y; y < end_y; y++){
         for(int x = start_x; x < end_x; x++){
             if(m_Tiles[y*m_width+x]->getGid()){
                 if(rect.intersects(GMRect2D(x, -y-1, 1, 1))){
                     ostringstream oss;
                     oss << "obj_" << m_parent->getTileSetMan()->getLocalGid(m_Tiles[y*m_width+x]->getGid());
                     return oss.str().c_str();
                 }
             }
         }
     }
     return "";
 }
// 画面座標に変換する
GMRect2D SKUserInterface::convertRatioToPixel(const GMRect2D& in) {
    GMRect2D rect(in.x*SCREEN_SIZE.x, in.y*SCREEN_SIZE.y, in.width*SCREEN_SIZE.x, in.height*SCREEN_SIZE.y);
    return GMRect2D(rect.x-rect.width/2, rect.y-rect.height/2, rect.width, rect.height);
}
 void Murabito::draw(GMSpriteBatch *s){
     s->draw(0, GMRect2D(SKBaseAreaScene::convertMat2Draw(GMVector2D(m_Rect.x, m_Rect.y)), SKBaseAreaScene::convertMat2Draw(GMVector2D(m_Rect.width, m_Rect.height))), GMColor::Red);
 }
 void BackImage::draw(GMSpriteBatch *s){
     s->draw(m_parent->getTexMan()->get(SKMapSelectScene::texName_BGI), GMRect2D(0, SCREEN_SIZE));
 }
 void MapInterYesOrNo::draw(GMSpriteBatch* s){
     GMColor blue = GMColor::Blue;
     blue.a = m_time/3;
     s->fill(GMRect2D(0, SCREEN_SIZE), blue);
     if(m_questionWin) m_questionWin->draw(s);
 };
GMRect2D EnemyBullet8::getDefenceBounds() const
{
	return GMRect2D(mPos.x,mPos.y,mSize.x,mSize.y);
}
Esempio n. 17
0
GMRect2D GMViewport::getBounds() const
{
    return GMRect2D(x, y, width, height);
}