X operations(XOPS)に非常に近いFPSゲームを制作・リメイクし、成果物をオープンソースとして公開することを目的としたプロジェクトです。
Revision | 298 (tree) |
---|---|
Zeit | 2022-03-28 02:00:01 |
Autor | ![]() |
メニュー画面におけるマウス座標の処理とスクロールバーの処理を変更、ゲーム中の任務達成・失敗の演出改善
@@ -625,10 +625,10 @@ | ||
625 | 625 | |
626 | 626 | //マウス座標を取得 |
627 | 627 | inputCtrl->GetMouseMovement(&mainmenu_mouseX, &mainmenu_mouseY); |
628 | - if( mainmenu_mouseX < 0 ){ mainmenu_mouseX = 0; } | |
629 | - if( mainmenu_mouseX > GameConfig.GetScreenWidth()-1 ){ mainmenu_mouseX = GameConfig.GetScreenWidth()-1; } | |
630 | - if( mainmenu_mouseY < 0 ){ mainmenu_mouseY = 0; } | |
631 | - if( mainmenu_mouseY > GameConfig.GetScreenHeight()-1 ){ mainmenu_mouseY = GameConfig.GetScreenHeight()-1; } | |
628 | + //if( mainmenu_mouseX < 0 ){ mainmenu_mouseX = 0; } | |
629 | + //if( mainmenu_mouseX > GameConfig.GetScreenWidth()-1 ){ mainmenu_mouseX = GameConfig.GetScreenWidth()-1; } | |
630 | + //if( mainmenu_mouseY < 0 ){ mainmenu_mouseY = 0; } | |
631 | + //if( mainmenu_mouseY > GameConfig.GetScreenHeight()-1 ){ mainmenu_mouseY = GameConfig.GetScreenHeight()-1; } | |
632 | 632 | |
633 | 633 | if( modescreen == 0 ){ |
634 | 634 | //スクロールバーを処理し情報取得 |
@@ -791,13 +791,16 @@ | ||
791 | 791 | //スクロールバーの情報を取得 |
792 | 792 | int scrollitems; |
793 | 793 | int totalmission; |
794 | + bool scrolling; | |
794 | 795 | if( GameInfoData.selectmission_id >= 0 ){ |
795 | 796 | scrollitems = scrollbar_official.GetScrollItem(); |
796 | 797 | totalmission = TOTAL_OFFICIALMISSION; |
798 | + scrolling = scrollbar_official.CheckScrolling(); | |
797 | 799 | } |
798 | 800 | else{ |
799 | 801 | scrollitems = scrollbar_addon.GetScrollItem(); |
800 | 802 | totalmission = GameAddon.GetTotaldatas(); |
803 | + scrolling = scrollbar_addon.CheckScrolling(); | |
801 | 804 | } |
802 | 805 | |
803 | 806 | //メニューエリア描画 |
@@ -821,7 +824,7 @@ | ||
821 | 824 | d3dg->Draw2DTextureFontText(MAINMENU_X+1, MAINMENU_Y+1, "< UP >", d3dg->GetColorCode(0.0f,0.0f,0.0f,1.0f), 25, 26); |
822 | 825 | |
823 | 826 | //文字の色を設定 |
824 | - if( (MAINMENU_X < mainmenu_mouseX)&&(mainmenu_mouseX < (MAINMENU_X+340))&&(MAINMENU_Y < mainmenu_mouseY)&&(mainmenu_mouseY < MAINMENU_Y+30) ){ | |
827 | + if( (MAINMENU_X < mainmenu_mouseX)&&(mainmenu_mouseX < (MAINMENU_X+340))&&(MAINMENU_Y < mainmenu_mouseY)&&(mainmenu_mouseY < MAINMENU_Y+30)&&(scrolling == false) ){ | |
825 | 828 | color = d3dg->GetColorCode(0.0f,1.0f,1.0f,1.0f); |
826 | 829 | } |
827 | 830 | else{ |
@@ -840,7 +843,7 @@ | ||
840 | 843 | d3dg->Draw2DTextureFontText(MAINMENU_X+1, MAINMENU_Y+MAINMENU_H-55+1, "< DOWN >", d3dg->GetColorCode(0.0f,0.0f,0.0f,1.0f), 25, 26); |
841 | 844 | |
842 | 845 | //文字の色を設定 |
843 | - if( (MAINMENU_X < mainmenu_mouseX)&&(mainmenu_mouseX < (MAINMENU_X+340))&&((MAINMENU_Y+MAINMENU_H-55) < mainmenu_mouseY)&&(mainmenu_mouseY < (MAINMENU_Y+MAINMENU_H-55+30)) ){ | |
846 | + if( (MAINMENU_X < mainmenu_mouseX)&&(mainmenu_mouseX < (MAINMENU_X+340))&&((MAINMENU_Y+MAINMENU_H-55) < mainmenu_mouseY)&&(mainmenu_mouseY < (MAINMENU_Y+MAINMENU_H-55+30))&&(scrolling == false) ){ | |
844 | 847 | color = d3dg->GetColorCode(0.0f,1.0f,1.0f,1.0f); |
845 | 848 | } |
846 | 849 | else{ |
@@ -859,7 +862,7 @@ | ||
859 | 862 | //addonがあれば |
860 | 863 | if( GameAddon.GetTotaldatas() > 0 ){ |
861 | 864 | //文字の色を設定 |
862 | - if( (MAINMENU_X < mainmenu_mouseX)&&(mainmenu_mouseX < (MAINMENU_X+340))&&((MAINMENU_Y+MAINMENU_H-25) < mainmenu_mouseY)&&(mainmenu_mouseY < (MAINMENU_Y+MAINMENU_H-2)) ){ | |
865 | + if( (MAINMENU_X < mainmenu_mouseX)&&(mainmenu_mouseX < (MAINMENU_X+340))&&((MAINMENU_Y+MAINMENU_H-25) < mainmenu_mouseY)&&(mainmenu_mouseY < (MAINMENU_Y+MAINMENU_H-2))&&(scrolling == false) ){ | |
863 | 866 | color = d3dg->GetColorCode(0.0f,1.0f,1.0f,1.0f); |
864 | 867 | } |
865 | 868 | else{ |
@@ -875,7 +878,7 @@ | ||
875 | 878 | //addonがあれば |
876 | 879 | //if( GameAddon.GetTotaldatas() > 0 ){ |
877 | 880 | //文字の色を設定 |
878 | - if( (MAINMENU_X < mainmenu_mouseX)&&(mainmenu_mouseX < (MAINMENU_X+340))&&((MAINMENU_Y+MAINMENU_H-25) < mainmenu_mouseY)&&(mainmenu_mouseY < (MAINMENU_Y+MAINMENU_H-2)) ){ | |
881 | + if( (MAINMENU_X < mainmenu_mouseX)&&(mainmenu_mouseX < (MAINMENU_X+340))&&((MAINMENU_Y+MAINMENU_H-25) < mainmenu_mouseY)&&(mainmenu_mouseY < (MAINMENU_Y+MAINMENU_H-2))&&(scrolling == false) ){ | |
879 | 882 | color = d3dg->GetColorCode(0.0f,1.0f,1.0f,1.0f); |
880 | 883 | } |
881 | 884 | else{ |
@@ -902,7 +905,7 @@ | ||
902 | 905 | } |
903 | 906 | |
904 | 907 | //文字の色を設定 |
905 | - if( (MAINMENU_X < mainmenu_mouseX)&&(mainmenu_mouseX < (MAINMENU_X+(signed)strlen(name)*20))&&(MAINMENU_Y+30 + i*30 < mainmenu_mouseY)&&(mainmenu_mouseY < MAINMENU_Y+30 + i*30 + 26) ){ | |
908 | + if( (MAINMENU_X < mainmenu_mouseX)&&(mainmenu_mouseX < (MAINMENU_X+(signed)strlen(name)*20))&&(MAINMENU_Y+30 + i*30 < mainmenu_mouseY)&&(mainmenu_mouseY < MAINMENU_Y+30 + i*30 + 26)&&(scrolling == false) ){ | |
906 | 909 | color = d3dg->GetColorCode(1.0f,0.6f,0.6f,1.0f); |
907 | 910 | } |
908 | 911 | else{ |
@@ -919,7 +922,7 @@ | ||
919 | 922 | d3dg->Draw2DBox(MAINMENU_OPTION_X, MAINMENU_OPTION_Y, MAINMENU_OPTION_X+132+2, MAINMENU_OPTION_Y+16+2, d3dg->GetColorCode(0.0f,0.0f,0.0f,0.5f)); |
920 | 923 | |
921 | 924 | //文字の色を設定 |
922 | - if( (MAINMENU_OPTION_X < mainmenu_mouseX)&&(mainmenu_mouseX < (MAINMENU_OPTION_X+132+2))&&(MAINMENU_OPTION_Y < mainmenu_mouseY)&&(mainmenu_mouseY < MAINMENU_OPTION_Y+16) ){ | |
925 | + if( (MAINMENU_OPTION_X < mainmenu_mouseX)&&(mainmenu_mouseX < (MAINMENU_OPTION_X+132+2))&&(MAINMENU_OPTION_Y < mainmenu_mouseY)&&(mainmenu_mouseY < MAINMENU_OPTION_Y+16)&&(scrolling == false) ){ | |
923 | 926 | color = d3dg->GetColorCode(0.0f,1.0f,1.0f,1.0f); |
924 | 927 | } |
925 | 928 | else{ |
@@ -2666,7 +2669,7 @@ | ||
2666 | 2669 | end_framecnt += 1; |
2667 | 2670 | } |
2668 | 2671 | else if( end_framecnt > 0 ){ //ミッション終了中ならば |
2669 | - if( end_framecnt < (int)(5.0f*GAMEFPS) ){ | |
2672 | + if( end_framecnt < (int)(4.0f*GAMEFPS) ){ | |
2670 | 2673 | end_framecnt += 1; |
2671 | 2674 | } |
2672 | 2675 | else{ |
@@ -3242,8 +3245,8 @@ | ||
3242 | 3245 | if( end_framecnt < (int)(1.0f*GAMEFPS) ){ |
3243 | 3246 | effect = GetEffectAlpha(end_framecnt, 1.0f, 1.0f, 0.0f, false); |
3244 | 3247 | } |
3245 | - else if( end_framecnt > (int)(4.0f*GAMEFPS) ){ | |
3246 | - effect = GetEffectAlpha(end_framecnt, 1.0f, 1.0f, 4.0f, true); | |
3248 | + else if( end_framecnt > (int)(3.0f*GAMEFPS) ){ | |
3249 | + effect = GetEffectAlpha(end_framecnt, 1.0f, 1.0f, 3.0f, true); | |
3247 | 3250 | } |
3248 | 3251 | else{ |
3249 | 3252 | effect = 1.0f; |
@@ -143,6 +143,14 @@ | ||
143 | 143 | } |
144 | 144 | } |
145 | 145 | |
146 | +//! @brief スクロール中か判定 | |
147 | +//! @return スクロール中である:true スクロール中でない:false | |
148 | +bool ScrollbarObject::CheckScrolling() | |
149 | +{ | |
150 | + if( mouse_mode == 2 ){ return true; } | |
151 | + return false; | |
152 | +} | |
153 | + | |
146 | 154 | //! @brief スクロールバー入力処理 |
147 | 155 | //! @param mouse_x マウスx座標 |
148 | 156 | //! @param mouse_y マウスy座標 |
@@ -70,6 +70,7 @@ | ||
70 | 70 | int GetScrollItem(); |
71 | 71 | void ScrollUP(); |
72 | 72 | void ScrollDOWN(); |
73 | + bool CheckScrolling(); | |
73 | 74 | void Input(int mouse_x, int mouse_y, bool mouse_click, int scroll_y); |
74 | 75 | void Draw(class D3DGraphics *d3dg); |
75 | 76 | }; |