Re: esc detector wont run -- 'out of scope'

"capehill" <[email protected]> Sat, 25 Mar 2017 19:07:10 +0000
Newsgroups gmane.comp.lib.sdl
Message-ID <[email protected]>
--===============2629055419930656248==
Content-Type: multipart/alternative;
	boundary="=_57c613275d78f125f63bd8d60e470f49"

--=_57c613275d78f125f63bd8d60e470f49
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 7bit

Here is something that I use in a puzzle game. First I poll for events which triggers the event pump, and then I check the keyboard state. This happens at 60 Hz rate, each time game logic is ran.


Code:

static void readKeyboard(InputState * inputState)
{
	const Uint8 *state = SDL_GetKeyboardState(NULL);

	inputState->fireButtonPressed = state[SDL_SCANCODE_SPACE];
	inputState->leftButtonPressed = state[SDL_SCANCODE_LEFT];
	inputState->rightButtonPressed = state[SDL_SCANCODE_RIGHT];
	inputState->upButtonPressed = state[SDL_SCANCODE_UP];
	inputState->downButtonPressed = state[SDL_SCANCODE_DOWN];
	inputState->rotateLeftButtonPressed = state[SDL_SCANCODE_Z];
	inputState->rotateRightButtonPressed = state[SDL_SCANCODE_X];

	if (state[SDL_SCANCODE_ESCAPE])
	{
		inputState->quitButtonPressed = SDL_TRUE;
	}
}

void handleEvents(InputState * inputState)
{
	SDL_Event event;

	while (SDL_PollEvent(&event))
	{
		switch (event.type)
		{
			case SDL_QUIT:
				inputState->quitButtonPressed = SDL_TRUE;
				break;
		}
	}

	readKeyboard(inputState);
}








--=_57c613275d78f125f63bd8d60e470f49
Content-Type: text/html; charset="ISO-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<style type=3D"text/css">
<!--

/*
  The original subSilver Theme for phpBB version 2+
  Created by subBlue design
  http://www.subBlue.com

  NOTE: These CSS definitions are stored within the main page body so that =
you can use the phpBB2
  theme administration centre. When you have finalised your style you could=
 cut the final CSS code
  and place it in an external file, deleting this section to save bandwidth=
.
*/


 /* General page style. The scroll bar colours only visible in IE5.5+ */
body {
	background-color: #;
	font-family: ;
	font-size: 11;
	color: #;
}

/* General font families for common tags */
font,th,td,p { font-family:  }
p, td		{ font-size : 11; color : #; }
a:link,a:active,a:visited { color : #; }
a:hover		{ text-decoration: underline; color : #; }
hr	{ height: 0px; border: solid # 0px; border-top-width: 1px;}
h1,h2		{ font-family: "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif=
; font-size : 22px; font-weight : bold; text-decoration : none; line-height=
 : 120%; color : #000000;}


/* This is the border line & background colour round the entire page */
.bodyline	{ background-color: #; border: 1px # solid; }


/* General text */
.gen { font-size : 12px; }
.genmed { font-size : 11px; }
.gensmall { font-size : 10px; line-height: 12px}
.gen,.genmed,.gensmall { color : #; }
a.gen,a.genmed,a.gensmall { color: #; text-decoration: none; }
a.gen:hover,a.genmed:hover,a.gensmall:hover	{ color: #; text-decoration: un=
derline; }


/* Forum title: Text and link to the forums used in: index.php */
.forumlink		{ font-weight: bold; font-size: 12px; color : #; }
a.forumlink 	{ text-decoration: none; color : #; }
a.forumlink:hover{ text-decoration: underline; color : #; }


/* The content of the posts (body of text) */
.postbody { font-size : 12px; line-height: 18px}
a.postlink:link	{ text-decoration: none; color : # }
a.postlink:visited { text-decoration: none; color : #; }
a.postlink:hover { text-decoration: underline; color : #}


/* Quote & Code blocks */
.code {
	font-family: ; font-size: 11px; color: #3FB753;
	background-color: #; border: #; border-style: solid;
	border-left-width: 1px; border-top-width: 1px; border-right-width: 1px; bo=
rder-bottom-width: 1px
}

.quote {
	font-family: ; font-size: 11px; color: #444444; line-height: 125%;
	background-color: #; border: #; border-style: solid;
	border-left-width: 1px; border-top-width: 1px; border-right-width: 1px; bo=
rder-bottom-width: 1px
}

-->
</style>
</head>
	<body>

	<div class=3D"postbody">Here is something that I use in a puzzle game. Fir=
st I poll for events which triggers the event pump, and then I check the ke=
yboard state. This happens at 60 Hz rate, each time game logic is ran.<br /=
>
<br />
<div align=3D"center"><table width=3D"90%" align=3D"center" cellspacing=3D"=
1" cellpadding=3D"2" border=3D"0" class=3D"code"><br />=0D<tr> <br />=0D	<t=
d class=3D"code_header" align=3D"left">Code:</td><br />=0D</tr><br />=0D<tr=
><br />=0D	<td class=3D"code" align=3D"left"><br />
static void readKeyboard&#40;InputState * inputState&#41;<br />
&#123;<br />
&nbsp; &nbsp;const Uint8 *state =3D SDL_GetKeyboardState&#40;NULL&#41;;<br =
/>
<br />
&nbsp; &nbsp;inputState->fireButtonPressed =3D state&#91;SDL_SCANCODE_SPACE=
&#93;;<br />
&nbsp; &nbsp;inputState->leftButtonPressed =3D state&#91;SDL_SCANCODE_LEFT&=
#93;;<br />
&nbsp; &nbsp;inputState->rightButtonPressed =3D state&#91;SDL_SCANCODE_RIGH=
T&#93;;<br />
&nbsp; &nbsp;inputState->upButtonPressed =3D state&#91;SDL_SCANCODE_UP&#93;=
;<br />
&nbsp; &nbsp;inputState->downButtonPressed =3D state&#91;SDL_SCANCODE_DOWN&=
#93;;<br />
&nbsp; &nbsp;inputState->rotateLeftButtonPressed =3D state&#91;SDL_SCANCODE=
_Z&#93;;<br />
&nbsp; &nbsp;inputState->rotateRightButtonPressed =3D state&#91;SDL_SCANCOD=
E_X&#93;;<br />
<br />
&nbsp; &nbsp;if &#40;state&#91;SDL_SCANCODE_ESCAPE&#93;&#41;<br />
&nbsp; &nbsp;&#123;<br />
&nbsp; &nbsp;&nbsp; &nbsp;inputState->quitButtonPressed =3D SDL_TRUE;<br />
&nbsp; &nbsp;&#125;<br />
&#125;<br />
<br />
void handleEvents&#40;InputState * inputState&#41;<br />
&#123;<br />
&nbsp; &nbsp;SDL_Event event;<br />
<br />
&nbsp; &nbsp;while &#40;SDL_PollEvent&#40;&event&#41;&#41;<br />
&nbsp; &nbsp;&#123;<br />
&nbsp; &nbsp;&nbsp; &nbsp;switch &#40;event.type&#41;<br />
&nbsp; &nbsp;&nbsp; &nbsp;&#123;<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;case SDL_QUIT&#58;<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;inputState->quitButtonP=
ressed =3D SDL_TRUE;<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;break;<br />
&nbsp; &nbsp;&nbsp; &nbsp;&#125;<br />
&nbsp; &nbsp;&#125;<br />
<br />
&nbsp; &nbsp;readKeyboard&#40;inputState&#41;;<br />
&#125;<br />
</td><br />=0D	</tr><br />=0D</table></div></div>
	</body>
</html>

--=_57c613275d78f125f63bd8d60e470f49--

--===============2629055419930656248==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
SDL mailing list
[email protected]
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org

--===============2629055419930656248==--