events.cpp

来自「打飞机的过关游戏(linux)」· C++ 代码 · 共 68 行

CPP
68
字号
#include "events.h"

/*
Checked during the main game loop. When the game is paused
it goes into a constant loop checking this routine. If escape is
pressed, the game automatically ends and goes back to the title screen
*/
signed char checkPauseRequest()
{
	getPlayerInput();
		
	if (engine.keyState[SDLK_ESCAPE])
	{
		engine.paused = 0;
		engine.done = 1;
		player.shield = 0;
		return 1;
	}
	
	if (engine.keyState[SDLK_p])
	{
		engine.paused = 0;
		engine.keyState[SDLK_p] = 0;
	}

	return 0;
}

void compareLastKeyInputs()
{
	if (strstr(lastKeyEvents, "humansdoitbetter") != NULL)
		{engine.cheat = 1; memset(lastKeyEvents, ' ', 25);}

	if (strstr(lastKeyEvents, "credits") != NULL)
		{engine.cheatCredits = 1; memset(lastKeyEvents, ' ', 25);}
}

void addKeyEvent(char *keyName)
{
	if (strlen(keyName) > 1)
		return;

	int index = -1;

	for (int i = 0 ; i < 25 ; i++)
	{
		if (lastKeyEvents[i] == ' ')
		{
			index = i;
			break;
		}
	}
	
	if (index == -1)
	{
		for (int i = 0 ; i < 25 ; i++)
		{	
			lastKeyEvents[i] = lastKeyEvents[i + 1];
		}
		
		index = 24;
	}
	
	lastKeyEvents[index] = keyName[0];
	
	compareLastKeyInputs();
}

⌨️ 快捷键说明

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