ページ 11

メニュー項目をカーソルで合わせたとき、その項目のみを拡大して表示したいのですが

Posted: 2012年7月22日(日) 22:59
by nowa-ru
今のところ「スタート」「コンフィグ」「おわる」の3つのメニュー項目があるのですが、
それぞれにカーソルを合わせたときにそれぞれに対応して拡大メニュー項目を拡大する処理を行いたいです。

どのようにすればよいかご教授お願いします

Re: メニュー項目をカーソルで合わせたとき、その項目のみを拡大して表示したいのですが

Posted: 2012年7月22日(日) 23:04
by h2so5
開発環境、使用しているライブラリ、現在のコードなどを書いてください。

Re: メニュー項目をカーソルで合わせたとき、その項目のみを拡大して表示したいのですが

Posted: 2012年7月22日(日) 23:14
by nowa-ru
C++で ライブラリは独自のものなので・・・

コード:

MENU_BAR gMenus[BAR_Y_NUM] =
{
	{GRID_WIDTH*0, GRID_HEIGHT*0, 0},
	{GRID_WIDTH*0, GRID_HEIGHT*1, 0},
	{GRID_WIDTH*0, GRID_HEIGHT*2, 0},
};

CURSOR gCursor;

void drawMenus(int x, int y);
void ctrlCursor(int key);
void drawCursor(int x, int y);

void DrawTitle()
{
	画像を描画する関数(0,0,cgTitle);
	//画像を描画(アルファブレンド付)(0,0,cgTitleLogo);

	int mx = 200;
	int my = 320;

	
	drawMenus(mx, my);
	drawCursor(mx, my);
}

void drawMenus(int x, int y)
{
	int i;
	for(i=0;i<BAR_Y_NUM;i++){
		画像を描画する関数(x + gMenus[i].x, y + gMenus[i].y, gMenus[i].hImage);
	}
	
}

void ctrlCursor(int key)
{
	int iy;

	iy = gCursor.iy;

	if(key & KEYIN_DOWN)
	{
		iy++;
	}
	if(key & KEYIN_UP)
	{
		iy--;
	}
	iy = (iy + BAR_Y_NUM) % BAR_Y_NUM;

	gCursor.x = gMenus[iy].x - CUR_WIDTH * 2;
	gCursor.y = gMenus[iy].y;
	gCursor.iy = iy;
}

void drawCursor(int x, int y)
{
	画像を描画(アルファブレンド付)(x + gCursor.x, y + gCursor.y, gCursor.hImage);
}

void initTitle()
{
	int i;
	for(i=0;i<BAR_Y_NUM;i++){
		gMenus[i].hImage = cgMenu[i];
	}

	gCursor.hImage = cgCursor;
}



// アプリタイトル
int Mode_Title( int nMode, int nKey, int nTrg, int nAppTime, int nModeCnt, int nModeTime )
{
	

	//
	// 計算・処理
	//
	if(nModeCnt == 0){
		initTitle();
	}

	ctrlCursor(nTrg);

	// キー入力を判定して、次のモードへ
	if ( nKey & KEYIN_SPC )
	{	// ゲームに入る。ゲーム用データの初期化
		//nMode = MODE_GAME;
		switch(gCursor.iy)
		{
		case 0:	//ゲームスタート
			nMode = MODE_GAME;
			break;
		case 1:	//コンフィグ
			nMode = MODE_CONFIG;
			break;
		case 2:	//ぎゃらりー
			nMode = MODE_GALLERY;
			break;
		}
	
	

		

	//
	// 描画
	//

	// 画面を消す
	HCls();
	
	DrawTitle();
	// 画像
	//DrawMem( 0, 0, cgTitle );

	// 更新
	Flip();


	// 次のモードを返す
	return nMode;
}

独自のものなので、すこしいじっています。。。

よろしくおねがいします。