📄 game_findfault.c
字号:
#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 + -