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(InputState * inputState)<br />
{<br />
const Uint8 *state =3D SDL_GetKeyboardState(NULL);<br =
/>
<br />
inputState->fireButtonPressed =3D state[SDL_SCANCODE_SPACE=
];<br />
inputState->leftButtonPressed =3D state[SDL_SCANCODE_LEFT&=
#93;;<br />
inputState->rightButtonPressed =3D state[SDL_SCANCODE_RIGH=
T];<br />
inputState->upButtonPressed =3D state[SDL_SCANCODE_UP]=
;<br />
inputState->downButtonPressed =3D state[SDL_SCANCODE_DOWN&=
#93;;<br />
inputState->rotateLeftButtonPressed =3D state[SDL_SCANCODE=
_Z];<br />
inputState->rotateRightButtonPressed =3D state[SDL_SCANCOD=
E_X];<br />
<br />
if (state[SDL_SCANCODE_ESCAPE])<br />
{<br />
inputState->quitButtonPressed =3D SDL_TRUE;<br />
}<br />
}<br />
<br />
void handleEvents(InputState * inputState)<br />
{<br />
SDL_Event event;<br />
<br />
while (SDL_PollEvent(&event))<br />
{<br />
switch (event.type)<br />
{<br />
case SDL_QUIT:<br />
inputState->quitButtonP=
ressed =3D SDL_TRUE;<br />
break;<br />
}<br />
}<br />
<br />
readKeyboard(inputState);<br />
}<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==--