⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 game_findfault.c

📁 c语言写的找茬游戏
💻 C
📖 第 1 页 / 共 3 页
字号:
#include "EagleSDK.h"
#include "ObjectCtrl.h"#include "KeyboardInput.h"
#include "BaseFunction.h"
#include "game_FindFault.h"
#define false FALSE#define true TRUE
// 	void abcd(int a){}
// 	#define OnLightOn  abcd
// 	#define OnShowPartOK  abcd
// 	#define OnLightOnAndShake  abcd
// 	#define OnLightOff abcd 

int R_Array[ImagNum];
int R_Guan[7];
int v_GuanIndex=7;
int v_ArrayIndex=ImagNum;
int v_ImageAnswerID=-1;
int v_TimeFrame=0;
int v_TimeFrame2=0;
int v_TimeFlag=1;
int v_CurrentPage=1;
int v_CurrentPlayer=0;
int v_CurrentGuan=0; 
int v_NextGuan=0;
int v_GuanNum=0;
int v_OptionNum=0;
int  v_HelpOver=0;
int v_WrongPlayerNum=0;
Player player[4];
int PathEnd_RightZi=0;
int PathEnd_WrongZi=0;
int PathEnd_RightZi2=0;
int PathEnd_WrongZi2=0;
int PathEnd_TOverZi=0;
int PathEnd_TOverZi2=0;
int PathEnd_FS=0;
int  PathEnd_FS2=0;
int v_FSflag=0;


void OnHandOpen(int hand)
{
	//_TR("%d is opened.",hand);
	//OnShowWinner(hand);
	OnEnableHandScreen(hand,false);	
}
void OnInit()
{
	PlayWavFile(1700,"\\eagle\\resource\\FindFault\\sound\\bg.wav",true);	PlayWavFile(1702,"\\eagle\\resource\\FindFault\\sound\\title.wav",false);
	#ifndef WIN32
	OnResetChgUI("\\eagle\\resource\\FindFault\\Help.565");
	OnResetResourceLoad("\\eagle\\resource\\FindFault\\inzi.565",0,538,"\\eagle\\resource\\FindFault\\inpiont.565",586,564,20,10);
	OnStartResourceLoad();
	#endif

	ObjectInit(256);
	F_InitGame();
	F_GameStart();	OnEnableHandScreen(1,false);	OnEnableHandScreen(2,false);	OnEnableHandScreen(3,false);	OnEnableHandScreen(4,false);	
// 	player[1].TotalScore=8888;
// 	player[0].TotalScore=1234;
// 	player[2].TotalScore=1234;
// 	player[3].TotalScore=1234;
	//F_ShowRank(); // 显示排行榜
	//ObjectLoad(ID_Cover,PATH_Cover);
	//PlayWavFileWithID(1700,true);
	SetHandOpenCall(OnHandOpen);
	#ifndef WIN32
	OnStopResourceLoad();
//	SetResourcePath("");
	OnResetChgUI("\\Games\\images\\partok.bmp");
//	SetResourcePath("\\eagle\\resource\\21\\");
	#endif
} 

void OnKeyMsg(int hand,int key,int reserve)
{	if(v_HelpOver==0) return;		int i;
	switch(key)
	{
	case VK_UP:
		break;
	case VK_OK_DOWN:
		if(v_HelpOver==1&&hand==1&&v_NextGuan==2)
		{
			//v_NextGuan=0;			OnLightOff(1);
			v_HelpOver=2;
			F_NextGuan();  //下一关
			return;
		}
		if(v_NextGuan==1)
		{	v_NextGuan=2;
			F_IninNextGuan();
			F_NextGuan();
			//v_NextGuan=0;
			return;
		}	
		break;
	case VK_RIGHT:
		break;
	case VK_LEFT:	
		break;
	case VK_A:
		if(v_NextGuan==0)
		{
			if(v_CurrentPlayer!=-1)
				return;
			v_CurrentPlayer=hand-1;
			if(player[v_CurrentPlayer].CanAnswer==0)
			{
				v_CurrentPlayer=-1;
				return;
			}
			player[v_CurrentPlayer].Answer=0;
			player[v_CurrentPlayer].CanAnswer=0;
			F_CheckAnswer();
		}
		break;
	case VK_B:
		if(v_NextGuan==0)
		{
			if(v_CurrentPlayer!=-1)
				return;
			v_CurrentPlayer=hand-1;
			if(player[v_CurrentPlayer].CanAnswer==0)
			{
				v_CurrentPlayer=-1;
				return;
			}
			player[v_CurrentPlayer].Answer=1;
			player[v_CurrentPlayer].CanAnswer=0;
			F_CheckAnswer();
		}
		break;	
	case VK_C:
		if(v_NextGuan==0)
		{
			if(v_CurrentPlayer!=-1)
				return;
			v_CurrentPlayer=hand-1;
			if(player[v_CurrentPlayer].CanAnswer==0)
			{
				v_CurrentPlayer=-1;
				return;
			}
			player[v_CurrentPlayer].Answer=2;
			player[v_CurrentPlayer].CanAnswer=0;
			F_CheckAnswer();
		}	
		break;
	case VK_D:
		if(v_NextGuan==0)
		{
			if(v_CurrentPlayer!=-1)
				return;
			v_CurrentPlayer=hand-1;
			if(player[v_CurrentPlayer].CanAnswer==0)
			{
				v_CurrentPlayer=-1;
				return;
			}
			player[v_CurrentPlayer].Answer=3;
			player[v_CurrentPlayer].CanAnswer=0;
			F_CheckAnswer();
		}
		break;

	case VK_MENU_DOWN:
		if(hand!=1) return;
		for(i=1;i<5;i++)		{			OnLightOff(i);		}
		OnEnableHandScreen(1,true);		OnEnableHandScreen(2,true);		OnEnableHandScreen(3,true);		OnEnableHandScreen(4,true);
		#ifndef WIN32
			OnGoback2Menu();
		#endif
		break;
	}
}


void OnUpdate()
{	
}

int v_AlphaTempId;
void OnTimer(int timerid)
{
	
	switch(timerid)
	{	
	case TimerId_Cover:			
		break;
	case TimerId_Timedown:
		F_ShowTimeDown(30-3*(v_GuanNum-1));
		break;
	case TimerId_GuanOver:		OnLightOnAndShake(1);		OnLightOnAndShake(2);		OnLightOnAndShake(3);		OnLightOnAndShake(4);
		ObjectShowSet(ID_Guan+v_CurrentGuan,0);
		v_NextGuan=0;
		F_NextImage() ;
		F_ShowGameImage();
		break;
	case TimerId_WrongZiOver:
		PathEnd_WrongZi2=PathGotoPos(ID_WrongZi,800,0,80);
		F_AlphaSet2(ID_WrongZi);
		F_ShowTimeDown(30);	
		ObjectShowSet(ID_WrongPlayer,0);
		ObjectShowSet(ID_WrongNum,0);
		ObjectShowSet(ID_WrongNum+1,0);		ObjectShowSet(ID_WrongNum+2,0);
		ObjectShowSet(ID_Cross,0);
		break;	
	case TimerId_RightZiOver:
		PlayWavFileWithID(1703+F_Random(4),false);
		PathEnd_RightZi2=PathGotoPos(ID_RightZi,800,160,70);
		F_AlphaSet2(ID_RightZi);
		ObjectShowSet(ID_RightPlayer,0);
		ObjectShowSet(ID_RightNum,0);		if(ObjectIsExist(ID_RightNum+1))
			ObjectShowSet(ID_RightNum+1,0);		if(ObjectIsExist(ID_RightNum+2))
			ObjectShowSet(ID_RightNum+2,0);
		if(ObjectIsExist(ID_RightNum+3))
			ObjectShowSet(ID_RightNum+3,0);
		ObjectShowSet(ID_Circle,0);
		break;
	case TimerId_TOverZi:
		PathEnd_TOverZi2=PathGotoPos(ID_TimeOverZi,800,160,70);
		F_AlphaSet2(ID_TimeOverZi);
		break;
	case TimerId_Option:
		F_OptionHelp();
		break;
	case TimerId_NextImg:
		if(v_CurrentPage>10)
		{
			F_ShowRank();
		}else{
			F_NextImage();
			F_ShowGameImage();
		}
		break;
	case TimerId_ZoomSet:
		F_SetImageZoom2();
		break;
	case TimerId_AlphaSet:
		F_SetImageZoom3();
		break;
	case TimerId_AlphaSet2:
		F_AlphaSet1(v_AlphaTempId);
		break;
	case TimerId_AlphaSet3:
		F_AlphaSet2(v_AlphaTempId);
		break;
	case TimerId_RotoSet:
		F_SetImageZoom6();
		break;	case TimerId_Choice:		v_CurrentPlayer=-1;
		OnLightOnAndShake(1);		OnLightOnAndShake(2);		OnLightOnAndShake(3);		OnLightOnAndShake(4);
		break;
	case TimerId_FS1:
		v_FSflag=1-v_FSflag;
		//ObjectFrameSet(v_FS_ImageID1,2+3*v_FSflag);
		ObjectFrameSet(v_FS_ImageID1,0);
		if(v_FSflag)
			ObjectPlayAniCostom(v_FS_ImageID1,3,0,5,1);
		//_TR("v_FSflag=%d**************",v_FSflag);
		SetTimerOut(TimerId_FS1,20+v_FSflag*F_Random(20));
		break;
	case TimerId_FS2:
		//v_FSflag=1-v_FSflag;
		ObjectFrameSet(v_FS_ImageID2,0);
		if(v_FSflag)
			ObjectPlayAniCostom(v_FS_ImageID2,3,0,5,1);
		SetTimerOut(TimerId_FS2,20+v_FSflag*F_Random(20));
		break;
	case TimerId_FS3:
		//v_FSflag=1-v_FSflag;
		ObjectFrameSet(v_FS_ImageID3,0);
		if(v_FSflag)
			ObjectPlayAniCostom(v_FS_ImageID3,3,0,5,1);
		SetTimerOut(TimerId_FS3,20+v_FSflag*F_Random(20));
		break;
	case TimerId_FS4:
		//v_FSflag=1-v_FSflag;
		ObjectFrameSet(v_FS_ImageID4,0);
		if(v_FSflag)
			ObjectPlayAniCostom(v_FS_ImageID4,3,0,5,1);
		SetTimerOut(TimerId_FS4,20+v_FSflag*F_Random(20));
		break;
	}
}

void OnAniPlayEnd(int id){		switch(id)
	{		
	case ID_Cross:
			ObjectShowSet(ID_WrongZi,1);
			ObjectPosSet(ID_WrongZi,190,-500);
			StopTimerOut(TimerId_Timedown);
			PathEnd_WrongZi=PathGotoPos(ID_WrongZi,190,0,80);
			F_AlphaSet1(ID_WrongZi);
		break;
	case ID_Circle:
			ObjectShowSet(ID_RightZi,1);
			ObjectPosSet(ID_RightZi,-680,160);
			PlayWavFileWithID(1714,false);
			PlayWavFileWithID(1713,false);
			PathEnd_RightZi=PathGotoPos(ID_RightZi,190,160,100);
			F_AlphaSet1(ID_RightZi);
		break;
	case ID_Angel:
			ObjectShowSet(ID_Angel,0);
		break;
	case v_FS_ImageID1:
			v_FSflag=1-v_FSflag;
			ObjectPlayAniCostom(v_FS_ImageID1,1+0*v_FSflag,5*v_FSflag,5-2*v_FSflag,1);
		break;
	case v_FS_ImageID2:
			v_FSflag=1-v_FSflag;
			ObjectPlayAniCostom(v_FS_ImageID2,1+0*v_FSflag,5*v_FSflag,5-2*v_FSflag,1);
		break;
	case v_FS_ImageID3:
			v_FSflag=1-v_FSflag;
			ObjectPlayAniCostom(v_FS_ImageID3,1+0*v_FSflag,5*v_FSflag,5-2*v_FSflag,1);
		break;
	case v_FS_ImageID4:
			v_FSflag=1-v_FSflag;
			ObjectPlayAniCostom(v_FS_ImageID4,1+0*v_FSflag,5*v_FSflag,5-2*v_FSflag,1);
		break;
	}} 

void OnPathEnd(int eventid)
{
	if(eventid==PathEnd_WrongZi)
	{
		PathEnd_WrongZi=0;
		ObjectShowSet(ID_WrongPlayer,1);
		ObjectPosSet(ID_WrongPlayer,290,175);
		ObjectFrameSet(ID_WrongPlayer,v_CurrentPlayer);
		F_DrawWrongScore(100,480,330);
		SetTimerOut(TimerId_WrongZiOver,50);
	}
	if(eventid==PathEnd_RightZi)
	{
		PathEnd_RightZi=0;		if(v_CurrentPlayer==-1) return;
		ObjectShowSet(ID_RightPlayer,1);				ObjectFrameSet(ID_RightPlayer,v_CurrentPlayer);
		ObjectPosSet(ID_RightPlayer,285,225);
		F_DrawRightScore(player[v_CurrentPlayer].CurrentScore,520,330);
		SetTimerOut(TimerId_RightZiOver,50);
	}
	if(eventid==PathEnd_TOverZi) //时间到
	{
		PathEnd_TOverZi=0;
		
		SetTimerOut(TimerId_TOverZi,50);
	}
	if(eventid==PathEnd_RightZi2) 
	{
		PathEnd_RightZi2=0;
		SetTimerOut(TimerId_NextImg,20);
		
	}	
	if(eventid==PathEnd_WrongZi2) 
	{		//OnLightOff(v_CurrentPlayer+1);
		PathEnd_WrongZi2=0;
		v_CurrentPlayer=-1;
		if(v_WrongPlayerNum>=4)
		{
			v_WrongPlayerNum=0;
			v_TimeFrame2=0;
			v_TimeFrame=0;
			StopTimerOut(TimerId_Timedown);
			ObjectShowSet(ID_TimeOverZi,1); /////时间到
			ObjectPosSet(ID_TimeOverZi,-680,160);
			v_CurrentPlayer=4;
			PathEnd_TOverZi=PathGotoPos(ID_TimeOverZi,190,160,100);
			F_AlphaSet1(ID_TimeOverZi);
			PlayWavFileWithID(1707,false);
			PlayWavFileWithID(1709,false);
		}
	}
	if(eventid==PathEnd_TOverZi2) 
	{
		PathEnd_TOverZi2=0;
		SetTimerOut(TimerId_NextImg,10);
	}	
	//if(eventid==PathEnd_FS) 
	//{
	//	PathEnd_FS=0;
	//	PathEnd_FS2=ObjectPlayAniCostom(v_FS_ImageID,2,3,5,1);
	//	
	//}	
	//if(eventid==PathEnd_FS2) 
	//{
	//	PathEnd_FS2=0;
	//	PathEnd_FS=ObjectPlayAniCostom(v_FS_ImageID,2,0,5,1);
	//	
	//}
}

const char* F_GetImageBMP1(int id)
{
	static char szFile[128];
	sprintf(szFile,PATH_SimpleBMP1,id);
	return szFile;
}

const char* F_GetImageBMP2(int id)
{
	static char szFile[128];
	sprintf(szFile,PATH_SimpleBMP2,id);
	return szFile;
}

const char* F_GetFirstScore(int id)
{
	static char szFile[128];
	sprintf(szFile,PATH_FirstScore,id);
	return szFile;
}

int F_Random(int m)
{	
	int num;
	num=rand()%m;
	return num;
}

void F_GameStart()
{
	int i;
	for(i=1;i<5;i++)	{		OnLightOff(i);	}
	ObjectDelete(ID_Cover);
	ObjectShowSet(ID_Help,1);
	ObjectShowSet(ID_HelpOk,1);
	ObjectPosSet(ID_HelpOk,0,540);
	ObjectPlayAni(ID_HelpOk,4);
	PlayWavFile(1701,"\\eagle\\resource\\FindFault\\sound\\voice_help1.wav",false);
	v_HelpOver=1;
	v_NextGuan=2;	//OnClearHandScreen(1);	OnLightOnAndShake(1);
}

void F_InitGame()   //初始化游戏
{
	ObjectLoad(ID_Help,PATH_Help);
	ObjectShowSet(ID_Help,0);
	ObjectLoad(ID_HelpOk,PATH_HelpOk);
	ObjectShowSet(ID_HelpOk,0);
	ObjectLoad(ID_Background,PATH_Background); //背景
	ObjectZorderSet(ID_Background,ID_Background);
	ObjectShowSet(ID_Background,0);
	int i;
	for(i=0;i<ImagNum;i++)                     //数组
	{
		R_Array[i]=i+1;
	}
	for(i=0;i<4;i++)
	{
		player[i].id=i;
	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -