| | |
Check to see if a mouse click missed an object
![]() |
I've been trying to code a catch me game (for anyone who doesn't know: a game with a ball that randomly jumps around the screen - the goal is to click the ball before it moves, and not to miss it). I've got the clicks part down. You can click on the ball and you get points. When I try to add punishment for missing - it won't work. Either every click is a miss - no matter what - or no click is a miss. I'm using this code:
A member of the object class
part of the code in a GameRun() function (target is an object of class cursor):
Does the code look okay? I've gone over it tons of times - and I can't find anything wrong.
A member of the object class
int miss(cursor* mycursor)
{
if((mycursor->X() < x || mycursor->X() > x+width || mycursor->Y() < y || mycursor->Y() > y+height) && MouseButton(0))
{
return 1;
}
else
{
return 0;
}
}part of the code in a GameRun() function (target is an object of class cursor):
if(myball.click(&target))
{
hits++;
jump_delay--;
jump_timer = GetTickCount();
myball.RandomJump(0,0,SCREEN_WIDTH,SCREEN_HEIGHT);
}
if(myball.miss(&target))
{
MessageBox(hwnd,"GAME OVER","CatchMe",MB_OK);
PostMessage(hwnd,WM_DESTROY,0,0);
}Does the code look okay? I've gone over it tons of times - and I can't find anything wrong.
I'm a student. If my statements seem too absolute, feel free to coat them with "In my opinion..." or "I believe...".
As it looks; you're doing one test for the mouse click ( testing MouseButton(0); ) - this means the function 'miss' will only be true if the user clicks the mouse at the exact moment that the code is running. I would set up an event to wait for the mouseclick or do a time-locked loop to poll the mouse until a click occurs; and THEN test to see whether or not it's a hit.
Last edited by MattEvans; Feb 22nd, 2008 at 2:12 pm.
Plato forgot the nullahedron..
•
•
•
•
As it looks; you're doing one test for the mouse click ( testing MouseButton(0); ) - this means the function 'miss' will only be true if the user clicks the mouse at the exact moment that the code is running. I would set up an event to wait for the mouseclick or do a time-locked loop to poll the mouse until a click occurs; and THEN test to see whether or not it's a hit.
I was checking to see if the button was down, not if it was just clicked. So whenever you clicked on the ball, it would move, leaving the mouse button down over space that is now empty.
I wrote some new functions to take into account the previous state of the mouse button, so that the function checked for a press, not just that the button was down. It now works,
I'm a student. If my statements seem too absolute, feel free to coat them with "In my opinion..." or "I believe...".
![]() |
Other Threads in the Game Development Forum
- Previous Thread: xy-rotation problem
- Next Thread: Switch between paused and unpaused
| Thread Tools | Search this Thread |
3d advertising ai algorithm ban c++ cambridge camera censorship china competition console development engine fov fpx game gamer games gaming gauntanamo government idaho in-gameadvertisement intellectualproperty laracroft live manhunt math mathematics matrix mercenaries microsoft mmorpg modded msn naked news nintendo obama opengl palin physics pirate playstation politics projection ps3 rpg search selection software sony stephenhawking stocks studio technology terrorism tombraider uk videogame web wii world-of-warcraft xbox xbox-live xbox360






