예제 #1
0
void mouse(Graph graph[15]){
	int pointX, pointY;
	static int i;
	static int clickFlg;
	static int graphClickFlg=-1;//-1:クリックされてない,0-14:画像をクリックした
	static int graphStatus[15] = { 0 };

	//左クリックされたかどうか
	if ((GetMouseInput() & MOUSE_INPUT_LEFT) != 0 && !clickFlg){
		GetMousePoint(&pointX, &pointY);
		clickFlg = 1;

		if (graphClickFlg >= 0){
			graphStatus[graphClickFlg] = 2;
			graphClickFlg = -1;
		}else{
			//当たり判定を以て画像の状態を変更する
			for (i = 0; i < 15; i++){
				if (collision_rect(graph[i].x, graph[i].y, graph[i].width, graph[i].height, pointX, pointY)){
					graphStatus[i] = 1;
					graphClickFlg = i;
				}else{
					graphStatus[i] = 0;
				}
			}
		}


	}else if ((GetMouseInput() & MOUSE_INPUT_LEFT) == 0){
		clickFlg = 0;
	}else{

	}
	graph_click(graph,graphStatus);
}
예제 #2
0
void suken::CMouse::Loop(){
	GetMousePoint( &mouseX, &mouseY );
	preMouseInput = mouseInput;
	if(IsLeft){
		mouseInput = (bool)( GetMouseInput() & MOUSE_INPUT_LEFT );
	}else{
		mouseInput = (bool)( GetMouseInput() & MOUSE_INPUT_RIGHT );
	}
}
예제 #3
0
// ----------------------------------------------------
//	Mouse::CheckMouseEvent
// ----------------------------------------------------
void			Mouse::_CheckMouseEvent()
{
	// マウスのX, Y座標を取得するための変数
	int MouseX, MouseY;
	// ------------------------------------------------
	// もしマウスが押されていて
	if(GetMouseInput() & MOUSE_INPUT_LEFT){
		// 初めて押されてたなら
		if(_MousePushTimeLeft < 0){
			// 0にリセット
			_MousePushTimeLeft = 0;
		}
		// インクリメントする
		_MousePushTimeLeft++;
	}
	// もしマウスが押されていなくて
	else{
		// 初めて離されたなら
		if(_MousePushTimeLeft > 0){
			// 0にリセット
			_MousePushTimeLeft = 0;
		}
		// デクリメントする
		_MousePushTimeLeft--;
	}
	// もしマウスが押されていて
	if(GetMouseInput() & MOUSE_INPUT_RIGHT){
		// 初めて押されてたなら
		if(_MousePushTimeRight < 0){
			// 0にリセット
			_MousePushTimeRight = 0;
		}
		// インクリメントする
		_MousePushTimeRight++;
	}
	// もしマウスが押されていなくて
	else{
		// 初めて離されたなら
		if(_MousePushTimeRight > 0){
			// 0にリセット
			_MousePushTimeRight = 0;
		}
		// デクリメントする
		_MousePushTimeRight--;
	}
	// 現在位置を取得
	GetMousePoint( &MouseX, &MouseY );
	// 現在の座標を保存
	_MouseBeforeLoc = _MouseLocation;
	// 取得した結果を代入する
	_MouseLocation( MouseX, MouseY);
	// 終了
	return;
}
예제 #4
0
파일: MyInput.cpp 프로젝트: Halksel/DTTD
bool MyInput::UpdateMouse(){
	int tmpMouse = GetMouseInput();					//マウスの入力状態
	int tmpMouseX, tmpMouseY;						//マウスの座標
	GetMousePoint(&tmpMouseX, &tmpMouseY);			//マウスの座標を取得
	mousePoint = Pos(tmpMouseX, tmpMouseY);
	for (int i = 0; i < MouseButNum; i++){
		if (tmpMouse & MouseMasks[i]){				//ボタンが押されていれば
			mouseReleasedPrevCnt[i] += mouseReleasedCnt[i];
			mouseReleasedCnt[i] = 0;
			++mousePressedCnt[i];
			if (mousePressedCnt[i] == 1) {
				++mousePressCnt[i];
				if (mousePressCnt[i] > 2) {
					mousePressCnt[i] = 0;
				}
			}
			if (mouseReleasedPrevCnt[i] > InputInterval ) {
				mouseReleasedPrevCnt[i] = 0;
				mousePressCnt[i] = 0;
			}
		}
		else{										//ボタンが押されていなければ
			mousePressedCnt[i] = 0;
			++mouseReleasedCnt[i];
			mouseReleasedPrevCnt[i] = 0;
		}
	}
	mouseRot = GetMouseWheelRotVol();				//マウスホイールの回転量を取得
	mouseRotSum += mouseRot;
	return true;
}
예제 #5
0
bool CCommon::GetOnRClick(){
	if(GetMouseInput()&MOUSE_INPUT_RIGHT && !rclick){
		return true;
	}else{
		return false;
	}
}
예제 #6
0
void C_Save::Update()
{
	C_DataBase::Update();

	for (int i = 0; i < 4; i++)
	{
		if (IsOnCursorList[i] == true && GetMouseInput() & MOUSE_INPUT_LEFT)
		{
			Smgr->Saving(i);
		}
	}
}
예제 #7
0
bool FallingObject::HitJudge()
{
    MouseInput = GetMouseInput();
    if(( MouseInput & MOUSE_INPUT_LEFT ) == 1 ){
		GetMousePoint(&mousex, &mousey);
		if(sqrt(pow(((double)mousex-x), 2)+pow(((double)mousey-y), 2)) <= 30){
			return true;
		}else{
			return false;
		}
	}
}
예제 #8
0
bool MusicApple::HitJudge()
{
	 MouseInput = GetMouseInput();
    if(( MouseInput & MOUSE_INPUT_LEFT ) == 1 ){
		GetMousePoint(&mousex, &mousey);
		if(sqrt(pow(((double)mousex-x), 2)+pow(((double)mousey-y), 2)) <= hit_area){
			StopSoundMem(sound_h_demo);
			return true;
		}else{
			return false;
		}
	}
}
예제 #9
0
void Mouse::Update()
{
	Mouse& ins = Instance();

	int x, y;
	GetMousePoint(&x, &y);
	ins.m_position.x = x;
	ins.m_position.y = y;

	ins.m_scrollValue = GetMouseWheelRotVol();

	ins.m_previousBuffer = ins.m_currentBuffer;
	ins.m_currentBuffer = GetMouseInput();
}
예제 #10
0
int ranking(AI_T ai[],int deth[]){
	int hoge,Cr;
	int j ;
	int space=0;
	static int drawX=500,time=100;
	if(drawX==500){
		for(int i=0;i<AI_NUM;i++){
			if(ai[i].entry==0)deth[i]=ROUND_MAX+1;
			ai[i].life = deth[i];
			j=i;
			//main関数よりdeth[]を引数に取り、小さい順に並び替え
			while(j>0&&deth[j-1]>deth[j]){
				hoge = deth[j-1];
				deth[j-1] = deth[j];
				deth[j] = hoge;
				j--;
			}
		}
	}
	space=1;
	
	if(drawX>0)drawX-=10;

	if(drawX<=0){
		if(time>0)time--;
		if(GetMouseInput()==1 && time<=0){
			return 1;
		}
	}
	ClearDrawScreen();

	for(int i = 0;i<AI_NUM;i++){
		for(int k=0;k<AI_NUM;k++){
			if(ai[k].life==deth[i]){
				if(i>0 && deth[i-1]==deth[i])continue;
				if(deth[i]<=ROUND_MAX){
					Cr = colswitch(i+1);
					DrawFormatString(100+drawX*space,50+space*35,Cr,"%d 位 %d 回",i+1,deth[i]);
					DrawString(250+drawX*space,50+space*35,ai[k].name,GetColor(255,0,0));
					DrawRotaGraph(400+drawX*space,50+space*35,1,0,ai[k].Graph,TRUE,0);
					space++;
				}
			}
		}
	}
	return 0;
}
예제 #11
0
파일: Lib.cpp 프로젝트: Muratam/Celestial
void CommandButton::Judge(){
if( !(GetMouseInput() & MOUSE_INPUT_LEFT) ){
	return;
}

	int x;
	int y;
	
	GetMousePoint( &x , &y );

	if ( x > Left && y > Top && x < Left+Width && y < Top + Height ){
		if( Func != NULL ){
			Func();
		} else {
			Click();
		}
	}
}
예제 #12
0
void InputMouse::Impl::UpdateInput()
{
    int const input_flag[ InputMouse::Type_Num ] =
    {
        MOUSE_INPUT_RIGHT,
        MOUSE_INPUT_LEFT,
        MOUSE_INPUT_MIDDLE,
    };
    
    for( int i = 0 ; i < InputMouse::Type_Num ; i++ )
    {
        if( ( GetMouseInput() & input_flag[i] ) == 0 )
        {
            m_press_frame[i] = 0;
        }else{
            m_press_frame[i] ++;
        }
    }
}
예제 #13
0
int Mouse::GetDeltaZ()
{
	int posZ = GetMouseInput().z;
	return (posZ != _relPosZ) ? _relPosZ - posZ : 0;
}
예제 #14
0
int intro(AI_T *ai){
	AI_T *init_ai = ai;

	static int gametitle = LoadGraph("media\\chofu_fes2.bmp");

	static int start=0;
	if(start==0){
		start=1;
		
		//	テンプレ
		//	extern void !初期化関数名!(AI_T &myAi);
		//	!初期化関数名!(ai[!aiの番号!]);
		//	extern Action !移動関数名!(int view[2*VISIBLE+1][2*VISIBLE+1]);
		//	init_ai->moveFunc = !移動関数名!;
		//!!![重要]!!!!一番初め(aiSample)以外、最初にinit_ai++;を書く!!!!!!!!!!
		//関数名などが被ると駄目です 名前は早い者勝ちで(基本自分のハンドルネーム)

		// Player
		extern void PlayerInit(AI_T &myAi);
		PlayerInit(*init_ai);
		extern Action Player(int view[2*VISIBLE+1][2*VISIBLE+1]);
		init_ai->moveFunc = Player;
		// Player

		// AI0 (aiSample)
		init_ai++;
		extern void aiSampleInit(AI_T &myAi);
		aiSampleInit(*init_ai);
		extern Action aiSample(int view[2*VISIBLE+1][2*VISIBLE+1]);
		init_ai->moveFunc = aiSample;
		// AI0
	
		// AI1 (aiTest)
		init_ai++;
		extern void aiTestInit(AI_T &myAi);
		aiTestInit(*init_ai);
		extern Action aiTest(int view[2*VISIBLE+1][2*VISIBLE+1]);
		init_ai->moveFunc = aiTest;
		// AI1
		
		//kuzumi
		init_ai++;
		extern void kuzumiInit(AI_T &myAi);
		kuzumiInit(*init_ai);
		extern Action kuzumi(int view[2*VISIBLE+1][2*VISIBLE+1]);
		init_ai->moveFunc=kuzumi;
		//

		//AI_MsZero
		init_ai++;
		extern void AI_MsZeroInit(AI_T &myAi);
		AI_MsZeroInit(*init_ai);
		extern Action AI_MsZero(int view[2*VISIBLE+1][2*VISIBLE+1]);
		init_ai->moveFunc=AI_MsZero;
		//
		init_ai++;
		extern void taoaiInit(AI_T &myAi);
		taoaiInit(*init_ai);
		extern Action taoai(int view[2*VISIBLE+1][2*VISIBLE+1]);
		init_ai->moveFunc=taoai;

		init_ai++;
		extern void AINomeaningInit(AI_T &myAi);
		AINomeaningInit(*init_ai);
		extern Action AINomeaning(int view[2*VISIBLE+1][2*VISIBLE+1]);
		init_ai->moveFunc=AINomeaning;

		init_ai++;
		extern void toshi_aiInit(AI_T &myAi);
		toshi_aiInit(*init_ai);
		extern Action toshi_ai(int view[2*VISIBLE+1][2*VISIBLE+1]);
		init_ai->moveFunc=toshi_ai;
		
		init_ai++;
		extern void nununuInit(AI_T &myAi);
		nununuInit(*init_ai);
		extern Action nununu(int view[2*VISIBLE+1][2*VISIBLE+1]);
		init_ai->moveFunc=nununu;
		
		init_ai++;
		extern void KenkinoInit(AI_T &myAi);
		KenkinoInit(*init_ai);
		extern Action Kenkino(int view[2*VISIBLE+1][2*VISIBLE+1]);
		init_ai->moveFunc=Kenkino;

		init_ai++;
		extern void hotaInit(AI_T &myAi);
		hotaInit(*init_ai);
		extern Action hota(int view[2*VISIBLE+1][2*VISIBLE+1]);
		init_ai->moveFunc=hota;
		//11

		init_ai++;
		extern void hentekoInit(AI_T &myAi);
		hentekoInit(*init_ai);
		extern Action henteko(int view[2*VISIBLE+1][2*VISIBLE+1]);
		init_ai->moveFunc=henteko;
		//12

		init_ai++;
		extern void TsuuroInit(AI_T &myAi);
		TsuuroInit(*init_ai);
		extern Action Tsuuro(int view[2*VISIBLE+1][2*VISIBLE+1]);
		init_ai->moveFunc=Tsuuro;

		/*AI追加欄
		init_ai++;
		extern void AI名Init(AI_T &myAi);
		AI名Init(*init_ai);
		extern Action AI名(int view[2*VISIBLE+1][2*VISIBLE+1]);
		init_ai->moveFunc=AI名;
		*/
	}
	
	int entryX=320,entryY=315;
	int startX=320,startY=360;

	static int step=0,window=0,input=0,time=0,bright=255;
	int mx,my;
	int en=0;
	GetMousePoint(&mx,&my);

	time++;
	if(time>30)time=0;

	if(step==0){
		if(GetMouseInput()==1){
			step=1;
		}
	}
	if(step==1){
		if(window<230)window+=23;
		if(GetMouseInput()==1 && input==0){
			if(window>=230){
				for(int i= 0; i < AI_NUM ;i++){
					int x=20+201*(i%3),y=70+50*(int)(i/3);
					if(mx>=x && mx<=x+200 && my>=y && my<=y+50){
						if(ai[i].entry==0)ai[i].entry=1;
						else ai[i].entry=0;
					}
				}
				if(mx>=30 && my>=400 && mx<=610 && my<=450){
					step=2;
					window=0;
				}
			}
		}
	}
	if(step==2){
		bright-=10;
		if(bright<=0){
			SetDrawBright(255,255,255);
			return 1;
		}
	}
	for(int i=0;i<AI_NUM;i++){
		if(ai[i].entry==1)en++;
	}
	if(GetMouseInput()==1 && input==0){
		input=1;
	}
	if(GetMouseInput()==0 && input==1){
		input=0;
	}
	
	ClearDrawScreen();
	SetDrawBright(bright,bright,bright);
	DrawGraph(0,0,gametitle,FALSE);
	int cr=GetColor(125,255,205);

	if(step==0){
		if(time%30<=15){
			DrawString(240,350,"Click to start",cr,0);
		}
	}
	/*
	DrawString(entryX,entryY,"ENTRY AI",cr,0);
	DrawBox(entryX-80,entryY-20,entryX+80,entryY+20,cr,0);
	
	cr=GetColor(255,100,50);
	DrawString(startX,startY,"START!",cr,0);
	DrawBox(startX-100,startY-20,startX+100,startY+20,cr,0);
	*/
	if(step==1){
		cr=GetColor(0,0,0);
		SetDrawBlendMode( DX_BLENDMODE_ALPHA,200);
		DrawBox(10,240-window,630,240+window,cr,1);
		SetDrawBlendMode( DX_BLENDMODE_ALPHA,255);
		cr=GetColor(255,255,255);
		DrawBox(10,240-window,630,240+window,cr,0);
		if(window>=230){
			cr=GetColor(125,255,205);
			DrawString(240,30,"ENTRY AI",cr,0);
			cr=GetColor(255,255,255);
			for(int i= 0; i < AI_NUM ;i++){
				if(ai[i].entry==0)
					SetDrawBright(100,100,100);
				int x=20+201*(i%3),y=70+50*(int)(i/3);
				DrawBox(x,y,x+200,y+50,cr,0);
				DrawBox(x,y,x+50,y+50,cr,0);
				DrawString(x+50,y+25,ai[i].name,GetColor(0,255,255),0);
				DrawRotaGraph(x+25,y+25,1,0,ai[i].Graph,FALSE,0);
				SetDrawBright(255,255,255);
			}
			cr=GetColor(255,100,50);
			DrawBox(30,400,610,450,cr,0);
			DrawString(240,425,"START!",cr,0);
		}
	}
	return 0;
	//WaitKey();
	//WaitTimer(1000/60);
}
예제 #15
0
파일: Pad.cpp 프로젝트: furaga/simpleTetris
void Pad::update(){
	cur = next;
	GetHitKeyStateAll( KeyInput[ cur ] );
	isInput[ cur ] = CheckHitKeyAll();
	MouseInput[ cur ] = GetMouseInput();
}
예제 #16
0
void CCommon::CheckRClick(){
	rclick=false;
	if(GetMouseInput()&MOUSE_INPUT_RIGHT){
		rclick=true;
	}
}
void CameraWorkManager::Update_RotateCamOnGazePoint( double timeslice )
{
	static const double DrugMoveScale=0.005; // ドラッグ量に対する視点の移動量のパラメータ

	static Vector2D ScreenDrugStartPoint;  // マウスでドラッグを開始したスクリーン上の座標を格納
	static Vector2D SavedCamDist;          // マウスでドラッグを開始したときの、m_dTilt、m_dHead を保持
	static bool     nowDruging=false;      // 今ドラッグ中か?

	// キー入力から、m_dTilt と m_dHead を更新
	//getKeyInput();

	// スクロール操作から、カメラと注視点の距離を更新
	getMouseWheelInput(timeslice);

	// マウスによるドラッグ操作により、m_dTilt と m_dHead を更新
	if( nowDruging )
	{ // 今ドラッグ中
		// ドラッグ終了したかを判定
		if( ( GetMouseInput() & MOUSE_INPUT_LEFT ) == 0 )
		{ // ドラッグ終了
			nowDruging = false; 
		}
		else
		{
			// 今のマウス位置を取得
			Point2D pos;
			GetMousePoint( &(pos.x) , &(pos.y) );
			Vector2D CurMousePos( (double)pos.x, (double)pos.y);
			
			// m_dTilt と m_dHead を更新
			Vector2D NewCamDist = -DrugMoveScale*(CurMousePos-ScreenDrugStartPoint)+SavedCamDist;
			m_dTilt = NewCamDist.y;
			m_dHead = NewCamDist.x;

		}
	}
	else
	{ // ドラッグ中でない
		// ドラッグ開始したかを判定
		int button;
		Point2D pos;
		if( GetMouseInputLog( &button, &pos.x, &pos.y, TRUE )==0
			&& ( button & MOUSE_INPUT_LEFT ) != 0 )
		{ // ドラッグが開始された
			// ドラッグ開始時の マウス座標を ScreenDrugStartPoint に保持
			ScreenDrugStartPoint = pos.toRealVector();

			// ドラッグ開始時の m_dTilt、m_dHead の値を SavedCamDist に保持
			SavedCamDist.y = m_dTilt;
			SavedCamDist.x = m_dHead;

			// ドラッグフラグを立てる
			nowDruging = true;
		}
	}
	

	// m_dHead と m_dTilt から、(GazingPointを原点とした)カメラの位置を計算する
	Vector3D Hedding3D( 1.0, 0, 0 );
	Hedding3D = VTransform( Hedding3D.toVECTOR(), MGetRotZ( (float)m_dTilt ) ); // もしかしたら、マイナスにしないと駄目かも
	Hedding3D = VTransform( Hedding3D.toVECTOR(), MGetRotY( -1*(float)m_dHead ) );
	Vector3D toCamPos3D = m_dCamDistFrmFP * Hedding3D ;

	// ### ビュー行列を生成を確認

	// カメラの座標変換行列のz軸向き(=カメラの向き)
	Vector3D vViewBaseZ = -1 * Hedding3D; 

	// カメラの座標変換行列のy軸向きを仮置き
	Vector3D vViewBaseY( 0.0, 1.0, 0.0 );

	// カメラの座標変換行列のx軸向き(= y × z )
	Vector3D vViewBaseX = VCross( vViewBaseY.toVECTOR(), vViewBaseZ.toVECTOR() );
	vViewBaseX = vViewBaseX.normalize();

	// カメラの座標変換行列のy軸向きを再調整
	vViewBaseY = VCross( vViewBaseZ.toVECTOR(), vViewBaseX.toVECTOR() );

	// 基底を組み合わせてカメラ座標変換行列(Entityローカル座標)を生成
	MATRIX MCamTransMatLocal = 
		MGetAxis1(
		//MakeMatrixFromBaseVec( 
			vViewBaseX.toVECTOR(),
			vViewBaseY.toVECTOR(),
			vViewBaseZ.toVECTOR(),
			toCamPos3D.toVECTOR() );
	MCamTransMatLocal.m[3][1] += m_TrgtHight;

	// Entity位置だけシフトしたものがワールド座標でのカメラ座標変換行列
	MATRIX MCamTransMatWorld = MCamTransMatLocal;
	MCamTransMatWorld.m[3][0] += m_TargetPos.x;
	//MCamTransMatWorld.m[3][1] += m_TrgtHight; <- MCamTransMatLocal の段階でシフト
	MCamTransMatWorld.m[3][2] += m_TargetPos.z;

	// 逆行列がビュー行列
	m_MViewLocal = MInverse( MCamTransMatLocal );
	m_MViewWorld = MInverse( MCamTransMatWorld );
	
	// 背景パノラマ球の描画に使用しているため m_vFinalCamPos を参照している
	m_vFinalCamPos = VTransform( Vector3D( 0,0,0 ).toVECTOR(), MCamTransMatWorld );
};
예제 #18
0
int Mouse::GetDeltaX()
{
	int posX = GetMouseInput().positionX;
	return (posX != _relPosX) ? posX - _relPosX : 0;
}
예제 #19
0
bool Mouse::IsPressedRMB()
{
	bool isPressed = GetMouseInput().button1;
	_bufferedMouse.button1 = false;
	return isPressed;
}
예제 #20
0
int Mouse::GetDeltaY()
{
	int posY = GetMouseInput().positionY;
	return (posY != _relPosY) ? _relPosY - posY : 0;
}