Sign in to follow this  
mcjohnalds45

SDL_Events working in my main function but not in a class

Recommended Posts

mcjohnalds45    106
First post, hooray! I'm trying to call onEvent (a function of my player class) every time I call SDL_PollEvent in my game loop to move my player up when I press W.

Part of player definition.
[CODE]
void Player::onEvent(SDL_Event Events)
{
if (events.type == SDL_KEYDOWN)
{
switch (Events.key.keysym.sym)
{
case SDLK_w: ySpeed = -maxSpeed; break;
}
}
if (events.type == SDL_KEYUP)
{
switch (Events.key.keysym.sym)
{
case SDLK_w: ySpeed = 0; break;
}
}
}
[/CODE]

Part of my main function where onEvent is called.
[CODE]
while (SDL_PollEvent(&events))
{
if (events.type == SDL_QUIT)
run = false;
player.onEvent(events);
}
[/CODE]

I expect my player to move up when I press W but it does not, I am almost certain there is something wrong with onEvent's definition or how I am calling it because changing the above piece of code to the following makes the program run as expected.

[CODE]

while (SDL_PollEvent(&events))
{
if (events.type == SDL_QUIT)
run = false;
if (events.type == SDL_KEYDOWN)
{
switch (events.key.keysym.sym)
{
case SDLK_w: player.ySpeed = -player.maxSpeed; break;
}
}
if (events.type == SDL_KEYUP)
{
switch (events.key.keysym.sym)
{
case SDLK_w: player.ySpeed = 0; break;
}
}
}
[/CODE]

Sorry for goofing up any terminology, I'm pretty new to c++.

Share this post


Link to post
Share on other sites
SiCrane    11839
Is this your actual code? You seem to have a variable named events and another variable named Events. You probably want the events to be Events.

Share this post


Link to post
Share on other sites
mcjohnalds45    106
Problem solved, I made stupid mistake, I was using 'events' in my onEvent function instead of 'Events', thanks heaps for pointing that out.

(Note to self: Never code at 1 am ever again!)

Share this post


Link to post
Share on other sites
mcjohnalds45    106
The non-capital events was valid because I had left accidentally left a variable that I wasn't using any more in my Player class definition, if I had remembered to delete that I wouldn't have had a problem, anyway, thanks a lot!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this