void Menu::Draw() { title->Draw(); // タイトル if ( !title->isStop ) return; // タイトルが止まってないならスルー graphic->DrawMyString2(X, y[0], "START", SPACE, true, 2.0); graphic->DrawMyString2(X, y[1], "CONTINUE", SPACE, true, 2.0); graphic->DrawMyString2(X, y[2], "CONFIG", SPACE, true, 2.0); graphic->DrawMyString2(X, y[3], "QUIT", SPACE, false, 2.0); // その他の情報 graphic->DrawMyString2(140, 440, "SINCE 2015 SHOPPE YAHU!", SPACE, true, 2.0); DrawRotaGraph(320, 466, 2.0, 0.0, h_twi, true); // ツイッター DrawRotaGraph(X_CUR, y_cur, 2.0, 0.0, h_cursor, true); // カーソル score->Draw(); // スコア表示 if (isGame) { DrawBox(0, 0, 640, 480, GetColor(0, 0, 0), TRUE); graphic->DrawMyString2(60, 180, "STANDBY READY?", 40, false, 4.0); graphic->DrawMyString2(140, 260, "GOOD LUCK!", 40, false, 4.0); } // TEST if (!DebugMode::isTest) return; DrawFormatString(0, 50, GetColor(0, 255, 0), "ano_tri = %d", ano_tri); }
void p12(void) { SetDrawScreen(DX_SCREEN_BACK); int i; char keybuf[256]; int img; i = 0; img = LoadGraph("pic11.png"); while (ProcessMessage() == 0 && GetHitKeyStateAll(keybuf) == 0 && keybuf[KEY_INPUT_ESCAPE] == 0) { ClearDrawScreen(); DrawRotaGraph(120, 239, 1.0, PI / 4.0, img, TRUE); DrawCircle(120, 239, 5, GetColor(255, 0, 0), TRUE); DrawRotaGraph(320, 239, 1.0, PI / 180.0 * i, img, TRUE); DrawCircle(320, 239, 5, GetColor(255, 0, 0), TRUE); DrawRotaGraph2(520, 239, 19, 19, 1.0, PI / 180.0 * i * 2, img, TRUE); DrawCircle(520, 239, 5, GetColor(255, 0, 0), TRUE); ScreenFlip(); i++; } }
void LREnemy8::draw(){ if (h == 4) h = 0; if (explosion == 1) DrawRotaGraph((int)_x, (int)_y, 1.0, 0.0, ExpHandle[E_Num], TRUE); else if (!flashFlag || f % 3 == 0) DrawRotaGraph((int)_x, (int)_y, 1.0, 0.0, HandleN[h], TRUE); }
void Player::Draw_Game() { switch (keydir) { case InputDir::Left: DrawRotaGraph(pos.x, pos.y, 2.0, 0.0, hg[0], true); break; case InputDir::Neutral: DrawRotaGraph(pos.x, pos.y, 2.0, 0.0, hg[1], true); break; case InputDir::Right: DrawRotaGraph(pos.x, pos.y, 2.0, 0.0, hg[2], true); break; } /// ←ここにシールドアニメ }
void MainState::Draw() { sounds.Oomiwa.PlaySoundObject(true); DrawRotaGraph(1600 / 4, 900 / 4, 0.5, 0.0, graphics.GameBackground.getGraphHandle(),true,false); DrawRotaGraph(1600 / 4, 900 / 4, 1.0, 0.0, graphics.GetBackground(difficulty), true, false); DrawRotaGraph(player.x + 1, player.y - 10, 1.0, 0.0, graphics.PlayerGraph.getGraphHandle(), true, false); DrawRotaGraph(player.x, player.y, 1.0, 0.0, graphics.PlayerSubGraph.getGraphHandle(), true, false); DrawRotaGraph(750, 400, 0.3, 0.0, graphics.temple.getGraphHandle(), true, false); //DrawFormatString(20, 20, 0x0000ff, "%d",timer.GetNowTime()); //DrawFormatString(20, 40, 0x0000ff, "%d", this->difficulty); }
void CEnemy::Draw(Vector _mypos){ if(Alive){ Vector DrawPos = DrawPosition(Pos, _mypos); if(DrawPos.x<-PicSizeX || DrawPos.x>WINDOW_WIDTH+PicSizeX) return; if(DrawPos.y<-PicSizeY || DrawPos.y>WINDOW_HEIGHT+PicSizeY)return; //敵絵 DrawRotaGraph((int)(DrawPos.x), (int)(DrawPos.y), 1, -GetAngle(_mypos), ImgEnemy[0], true); DrawRotaGraph((int)(DrawPos.x), (int)(DrawPos.y), 1, -GetAngle(_mypos), ImgEnemy[1], true); //HPゲージ DrawExtendGraph((int)(DrawPos.x-Hp/2), (int)DrawPos.y+PicSizeY/2+5, (int)(DrawPos.x+Hp/2), (int)DrawPos.y+PicSizeY/2+4, ImgEnemy[2], true); } }
void TreasureEffect::DrawItem(void){ int l_ItemNum = DataManager::GetInstance().m_MogllStatus.treasureStatus; if(m_Status >= TREASURE_STATUS_ITEMIN && m_Status < TREASURE_STATUS_ALLOUT){ SetDrawBlendMode(DX_BLENDMODE_ALPHA, m_ItemAlpha); if(l_ItemNum < 60 && l_ItemNum > -1){ DrawRotaGraph( m_ItemPosX,m_ItemPosY,2.0f,0.0f, DataManager::GetInstance().GetGraphicGroupData( l_ItemNum + DataManager::GG_ITEM0), TRUE); } else if(l_ItemNum >= 60){ DrawRotaGraph( m_ItemPosX,m_ItemPosY,0.8f,0.0f, DataManager::GetInstance().Get( static_cast<DataManager::GraphicSet>((l_ItemNum - 60) + DataManager::Ic_stage1)),TRUE); } SetDrawBlendMode(DX_BLENDMODE_ALPHA, 255); } }
void Effect_Rejection_Residuum::draw() { if (draw_graphic_order < 16) { DrawRotaGraph(x , y , 1.0, 0, myGraphic::get().PlayerRejectionResiduum[draw_graphic_order], TRUE); } }
void CStar::Draw(Vector _mypos, int _timecount){ if (!Visible)return; _timecount += TimeGap; DrawPos = DrawPosition(Pos, _mypos); if(DrawPos.x<-Radius*2-50 || DrawPos.x>WINDOW_WIDTH+Radius*2+50) return; if(DrawPos.y<-Radius*2-50 || DrawPos.y>WINDOW_HEIGHT+Radius*2+50)return; if(Alive){ //Star DrawRotaGraph((int)(DrawPos.x), (int)(DrawPos.y), 1, (_timecount%300)*PI/150, ImgStar, true) ; //Enemy生成タイムゲージ for(int i=0; i<3; i++){ DrawExtendGraph((int)DrawPos.x-12, (int)DrawPos.y-3+8*(i-1), (int)DrawPos.x+12, (int)DrawPos.y+3+8*(i-1), ImgStarGauge[0], true); DrawExtendGraph((int)DrawPos.x-11, (int)DrawPos.y-2+8*(i-1), (int)(DrawPos.x-11 + 22 * (1+(_timecount%EnemyBirthTime[i])) / EnemyBirthTime[i]), (int)DrawPos.y+2+8*(i-1), ImgStarGauge[1], true); } }else{ //ティウンティウン] for (int i=0; i<8; i++){ if(_timecount/5 % 2 == 0) DrawCircle((int)(DeadCircleDrawPos[i].x+DrawPos.x), (int)(DeadCircleDrawPos[i].y+DrawPos.y), 12, GetColor(255,100,0), false); } } }
void dying::update(){ diedtime++; //死んだ瞬間の処理 if(diedtime == 1){startdying();} //一定時間経過でリザルトへ移行 if(diedtime > 360){ ptr->meffect->make(0, 0, 10, 0, 0); gamestate = 30; } //血を出す if((keika % 3)== 0){ ptr->meffect->make((int)ptr->mplayer->x, (int)ptr->mplayer->y, 4, -1, -1); SetDrawScreen( zanzou ) ; SetDrawBlendMode( DX_BLENDMODE_ALPHA , 200 ) ; DrawRotaGraph((int)ptr->mplayer->x, (int)ptr->mplayer->y, randarc()*1.0+0.7, PI*randarc(), GHandle[7], 1); SetDrawBlendMode( DX_BLENDMODE_ALPHA , 255 ) ; SetDrawScreen( DX_SCREEN_BACK ) ; } ptr->menemy->update(); ptr->meffect->update(); ptr->mstr_log->update(); }
void result::draw(){ SetDrawBlendMode( DX_BLENDMODE_ALPHA , 100 ) ; SetDrawBright(255,255,255); DrawRotaGraph(400, 300, 1, 0, GHandle[11] , 1); SetDrawBlendMode( DX_BLENDMODE_ALPHA , 255 ) ; SetDrawBright(255,255,255); int stry = 60; int wdx; wdx = (int)(0.5 *GetDrawFormatStringWidthToHandle(FontHandle[1], "RESULT")); DrawFormatStringToHandle((int)400-wdx, (int)stry, 0xFFFFFF, FontHandle[1] , "RESULT") ; stry+= 80; wdx = (int)(0.5 *GetDrawFormatStringWidthToHandle(FontHandle[1], "倒したゾンビ数: %d", ptr->menemy->dienum)); DrawFormatStringToHandle((int)400-wdx, (int)stry, 0xFFFFFF, FontHandle[1] , "倒したゾンビ数: %d", ptr->menemy->dienum) ; stry+= 80; wdx = (int)(0.5 *GetDrawFormatStringWidthToHandle(FontHandle[1], "累積経験値: %d", ptr->mplayer->expsum)); DrawFormatStringToHandle((int)400-wdx, (int)stry, 0xFFFFFF, FontHandle[1] , "累積経験値: %d", ptr->mplayer->expsum) ; stry+= 80; wdx = (int)(0.5 *GetDrawFormatStringWidthToHandle(FontHandle[1], "被ダメージ回数: %d", ptr->menemy->damagenum)); DrawFormatStringToHandle((int)400-wdx, (int)stry, 0xFFFFFF, FontHandle[1] , "被ダメージ回数: %d", ptr->menemy->damagenum) ; stry+= 80; wdx = (int)(0.5 *GetDrawFormatStringWidthToHandle(FontHandle[1], "総合スコア: %ld", ptr->menemy->dienum*1000 + ptr->mplayer->expsum*10 - ptr->menemy->damagenum*200)); DrawFormatStringToHandle((int)400-wdx, (int)stry, 0xFFFFFF, FontHandle[1] , "総合スコア: %ld", ptr->menemy->dienum*1000 + ptr->mplayer->expsum*10 - ptr->menemy->damagenum*200) ; SetDrawBlendMode( DX_BLENDMODE_ALPHA , (int)(128+128*sin(keika*0.05) ) ) ; wdx = (int)(0.5 *GetDrawFormatStringWidthToHandle(FontHandle[1], "THANK YOU FOR PLAYING!!")); DrawFormatStringToHandle((int)400-wdx, (int)460, 0xFFFFFF, FontHandle[1] , "THANK YOU FOR PLAYING!!") ; SetDrawBlendMode( DX_BLENDMODE_ALPHA , 255 ) ; SetDrawBright(255,255,255); wdx = (int)(0.5 *GetDrawFormatStringWidthToHandle(FontHandle[0], "[スペースキーで終了]")); DrawFormatStringToHandle((int)400-wdx, (int)550, 0xFF8800, FontHandle[0] , "[スペースキーで終了]") ; ptr->meffect->draw(); }
void Interface_Effect::draw_gra_array(int GraphicHandle[], int Gra_num, int Time_gra_change, double ExRate = 1.5) { if (draw_gra_num_map[GraphicHandle] < Gra_num) { DrawRotaGraph(x, y, ExRate, angle, GraphicHandle[draw_gra_num_map[GraphicHandle]], TRUE); } }
void CBattleJiki::CDraw(){ DrawRotaGraph(x,y,0.78,0.00,GetJiki(BATTLE),true); if(Event.key.GetPush(Event.key.LSHIFT)){ DrawRotaGraph(x,y,(double)center,kaiten*-1,GetJikiCenter(0),true,true); DrawRotaGraph(x,y,0.6,0,GetJikiCenter(1),true,true); kaiten-=0.10; if(kaiten<=-3.141592){ kaiten=0; } switch(center_f){ case 0: center += 0.008; break; case 1: center -= 0.008; break; } if(center >= 1.0){ center_f = 1; } if(center <= 0.7){ center_f = 0; } }else{ kaiten=0; center = 1.0; center_f = 1; } }
void Graphics2D::DrawBlendAdd(const int &X, const int &Y, const double &ExRate_, const double &Angle_, int Blend_ADD, const int &Gr_Handle, bool TransFlag_) { const int& BLEND_ADD = std::min( 255, std::max(0, Blend_ADD) ); SetDrawBlendMode(DX_BLENDMODE_ADD, BLEND_ADD); // 加算ブレンドモード DrawRotaGraph(X, Y, ExRate_, Angle_, Gr_Handle, TransFlag_); SetDrawBlendMode(DX_BLENDMODE_NOBLEND, 0); //ブレンドモードをオフ }
void Enemy::Draw(){ if(GetState() != Exist){return;} SetDrawBlendMode(DX_BLENDMODE_ADD,GetDrawParam()); SetDrawMode(1); DrawRotaGraph(static_cast<int>(GetX()),static_cast<int>(GetY()),GetDrawExp(),(GetRotateWhenDraw())?GetAngle():0,GetImage(),TRUE); SetDrawMode(0); SetDrawBlendMode(DX_BLENDMODE_NOBLEND,0); }
//通常描画 void PlayerShip::ExistNormal(PlayerShip& Obj){ Obj.DrawInvincibleImage(); //無敵画像描画 SetDrawBlendMode(DX_BLENDMODE_ALPHA,255); DrawRotaGraph((int)Obj.GetX(), (int)Obj.GetY(), 1.0, Obj.GetAngle(), Obj.GetImage(),TRUE); SetDrawBlendMode(DX_BLENDMODE_NOBLEND,0); //中心点描画 int param = (int)(191+MyMath::sin((Obj.GetFrame() % 60) * 6* RAD)*64); SetDrawBlendMode(DX_BLENDMODE_INVSRC,param); DrawRotaGraph((int)Obj.GetX(), (int)Obj.GetY(), 0.3, Obj.GetAngle(), Obj.Particle.imgCommon,TRUE); SetDrawBlendMode(DX_BLENDMODE_NOBLEND,0); //パーティクル発生 Obj.Particle.Create(Obj.GetX()-8+GetRand(160)*0.1,Obj.GetY()+GetRand(320)*0.1, (75+GetRand(300)*0.1)*RAD,5,Obj.Particle.imgCommon,NULL,&Particle::Fadeout,NULL,1.0,64); }
void CJikiAtack::CDraw(){ if(type==SOAD){ DrawRotaGraph(x+vx,y+vy,1.00,0.00,GetJikiAtack(SOAD),true); } }
void Effect_DescapePreEnd_RightPic::draw_over() { SetDrawArea(ShootingScreenRightX, 0, ScreenSizeX, ScreenSizeY);//描画範囲を右画面だけに int size_x; int size_y; BlendModeManager::get().ChangeDrawBlendMode(DX_BLENDMODE_ALPHA, 50 - time_by_gene / 4);//アルファブレンドに変更 GetGraphSize(got_graphic_handle, &size_x, &size_y); DrawRotaGraph(x + size_x / 2, y + size_y / 2, extend_rate, 0, got_graphic_handle, 1); DrawRotaGraph(x + size_x / 2, y + size_y / 2, pre_extend_rate[2], 0, got_graphic_handle, 1); DrawRotaGraph(x + size_x / 2, y + size_y / 2, pre_extend_rate[4], 0, got_graphic_handle, 1); BlendModeManager::get().ChangeToPreDrawBlendMode();//ブレンドモードを元に戻す SetDrawArea(0, 0, ScreenSizeX, ScreenSizeY);//描画範囲を全体に戻す // printfDx("descapeeffect draw\n"); }
void Scene_Battle::DrawBattleInfo() const{ // 時間の描画 DrawTimeAndMP(r_aliceInfo.GetTime(), r_aliceInfo.GetMP(), 0, 0); // 属性関係を表す図の描画 DrawRotaGraph(725, 120, 0.24, 0, g_image.icon.attr_graph, 1); }
void Clear_Draw() { DrawRotaGraph(WIDTH/2, HEIGHT/2,1.0,0, clear_image,true, 0); DrawFormatStringToHandle(250, 360, GetColor(255,127,39), CScoreFont, "ヒキョリ: %6d km", score); for (int i = 0; i < 3; i++) { DrawGraph(Menu_clear[i].x + 42 - 76, Menu_clear[i].y + 9 - 27, Menu_clear[i].image, true); DrawFormatString(Menu_clear[i].x, Menu_clear[i].y, Menu_clear[i].color, Menu_clear[i].name); } }
void Effect_Damage_RightPic::draw_damage() { if (damage_flag == true) { if (damage_type_num == Interface_Enemybullet::cut_type_num) { DrawRotaGraph(ShootingScreenRightX + RightScreenSizeX / 2 + damage_shift_x, 200 + damage_shift_y, 1, angle, myGraphic::get().RightPicCutDamageGra[damage_graphic_num], 1); } if (damage_type_num == Interface_Enemybullet::blast_type_num) { DrawRotaGraph(ShootingScreenRightX + RightScreenSizeX / 2 + damage_shift_x, 200 + damage_shift_y, 1, angle, myGraphic::get().RightPicBlastDamageGra[damage_graphic_num], 1); } if (damage_type_num == Interface_Enemybullet::slash_type_num) { DrawRotaGraph(ShootingScreenRightX + RightScreenSizeX / 2 + damage_shift_x, 200 + damage_shift_y, 1, angle, myGraphic::get().RightPicSlashDamageGra[(int)(damage_graphic_num*(4.0 / 5.0))], 1); } if (damage_type_num == Interface_Enemybullet::smash_type_num) { DrawRotaGraph(ShootingScreenRightX + RightScreenSizeX / 2 + damage_shift_x, 200 + damage_shift_y, 1, angle, myGraphic::get().RightPicSmashDamageGra[damage_graphic_num], 1); } } }
//Playerの座標から割り出したところにエフェクトをつける void Effect_Rejection_Player::draw_over() { //updateで++される為time_by_geneが0でここに来ることはないので1引く if (draw_graphic_order < 30) { DrawRotaGraph(*xp, *yp+50, 1.0, 0, myGraphic::get().PlayerRejectionEffect[draw_graphic_order], TRUE); } }
void Player::Draw_Dead() { if (elapsedTime % 4 >= 2) // 2fps毎に元の色に戻す { //SetDrawBlendMode(DX_BLENDMODE_INVSRC, 100); // On-Damage-Effect //SetDrawBright(255, 0, 0); //SetDrawBlendMode(DX_BLENDMODE_ADD, 255); //SetDrawBlendMode(DX_BLENDMODE_ALPHA, 100); SetDrawBright(255, 0, 0); // 赤色に設定 } switch (keydir) { case InputDir::Left: DrawRotaGraph(pos.x, pos.y, 2.0, 0.0, hg[0], true); break; case InputDir::Neutral: DrawRotaGraph(pos.x, pos.y, 2.0, 0.0, hg[1], true); break; case InputDir::Right: DrawRotaGraph(pos.x, pos.y, 2.0, 0.0, hg[2], true); break; } SetDrawBright(255, 255, 255); // 元の色合い }
void dying::draw(){ SetDrawBlendMode( DX_BLENDMODE_ALPHA , 255 ) ; drawzanzou(); DrawRotaGraph((int)ptr->mplayer->x, (int)ptr->mplayer->y, 2, PI*0.5, ptr->mplayer->p_GHandle[0], 1); ptr->menemy->draw(); ptr->mstone->drawdiedstone(); ptr->meffect->draw(); ptr->mstr_log->draw(); SetDrawBlendMode( DX_BLENDMODE_ALPHA , (int)(255.0 * (diedtime-240) / 80.0) ) ; DrawBox(0,0,800,600, 0x000000, 1); }
void EShot02::Draw() { for (int i = 0; i < ALL_NUM; i++) { if (!isExist[i]) continue; // アニメーション DrawRotaGraph(pos[i].x, pos[i].y, 2.0, vangle[i] - DX_PI / 2, gh, true); if (!DebugMode::isTest) continue; DrawCircle(pos[i].x, pos[i].y, HIT_RANGE, GetColor(255, 0, 0), FALSE); } }
void C_Bat::Draw() { SetDrawBlendMode(DX_BLENDMODE_ALPHA, LifeTime * 255 / 60); C_Character::DrawHitBox(0x444444); DrawHPBar(); NowAnimeNumber++; if (NowAnimeNumber > 20) { NowAnimeNumber = 0; } if (Parameter.HP > 0) { DrawRotaGraph(NowPosition.X, NowPosition.Y, 0.1f, 0.0f, Animation[NowAnimeNumber % 20 / 10], TRUE); } else { DrawRotaGraph(NowPosition.X, NowPosition.Y, 0.1f, 0.0f, DeadGraphic, TRUE); } DrawHPBar(); SetDrawBlendMode(DX_BLENDMODE_NOBLEND, 0); }
/// <summary> 回転した画像を複製します </summary> Texture copyRotate(const double radian) { auto size = getSize(); dxlib_handle texture = MakeScreen(size.width, size.height, true); SwapScreen::Begin(texture); DrawRotaGraph(size.width *0.5, size.height*0.5, 1, radian, handle, true); SwapScreen::End(); return Texture(texture); }
void Effect_Death_Player::draw() { if (draw_gra_num_map[myGraphic::get().PlayerDeathEffectAGra] < 16) {//注:graw_gra_numの初期値が6 DrawRotaGraph(x, y, 1 / 2.0, 0, myGraphic::get().PlayerDeathEffectAGra[draw_gra_num_map[myGraphic::get().PlayerDeathEffectAGra]], TRUE); } else { effect_end_flag = true;//tmp:***:drawでupdateしてる } }
void DrawAnime(const double & PosX, const double & PosY, const double & ANGLE, const int & TIME, const int& FRAME_NUM, const int & TIME_FRAME, int Gr_Handle[]) { // 余りをもとめるため、1を足して調整 const int& SUM_FRAME_TIME = (FRAME_NUM * TIME_FRAME + 1); // アニメーション for (int j = 0; j < FRAME_NUM; j++) { const bool& IS_PLAYTIME = ( TIME % SUM_FRAME_TIME < j * TIME_FRAME || TIME % SUM_FRAME_TIME > TIME_FRAME + (j * TIME_FRAME) ); if (IS_PLAYTIME) continue; DrawRotaGraph(PosX, PosY, 2.0, ANGLE, Gr_Handle[j], true); break; } }
void Effect_Graze_Player::draw() { if (time_by_gene < 3) { DrawRotaGraph(*xp + cos(angle_by_player)*distance, *yp + sin(angle_by_player)*distance, exrate, angle_self, myGraphic::get().PlayerGrazeEffectGra[draw_gra_num_map[myGraphic::get().PlayerGrazeEffectGra]], TRUE); } else { effect_end_flag = true;//tmp:***:drawでupdateしてる } }