Jump to content

  • Log In with Google      Sign In   
  • Create Account

Slowing down movement(For Tetris game) - C++/SDL


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
2 replies to this topic

#1 ChainedHollow   Members   -  Reputation: 158

Like
0Likes
Like

Posted 14 September 2012 - 01:37 AM

Im working on my 2nd game overall, my 1st using SDL, and Im having trouble with the left and right movement.
The falling motion is working perfectly just by using change in time ( y += yVel * deltaTime; )
However, this isnt working for left/right motion. I need the tetris block to move in increments of 20 pixels, not too quickly. Im thinking 10 times a second maybe, so once every 100ms. Ive tried an if statement using change in time of 100ms but it just seems to get ignored and blocks go across the screen super fast.

Now Im doing this without a tutorial, just grabbing pieces I need from LazyFoo and google, and now Im at my last resort on figuring out this incremental movement.

Can anyone help or provide any advice on this situation?

How my code is set up:

I have a block class with an input function and a move function.
the input function just takes key presses and adjusts velocity while the move function handles changing the x and y offsets and collision. Pretty much just like the motion tutorial on LazyFoo.com aside from the deltaTime code.

Thank you!

-----------------------------------------------------------------------------------------------------

Sponsor:

#2 Deft   Members   -  Reputation: 218

Like
0Likes
Like

Posted 14 September 2012 - 06:39 AM

I suggest that you can use the same formula: x += xVel * deltaTime.
Why not to decrease x axis velocity value? Then you can set up real X position as x_real = (x / 20) * 20. This will gives you always 20x offset.

Sorry, if I'm wrong. With regards.

#3 Goran Milovanovic   Members   -  Reputation: 1104

Like
0Likes
Like

Posted 14 September 2012 - 01:30 PM

As far as I know, tetris is a game that advances in well defined steps (from one cell to the next), but your use of deltaTIme implies that you're breaking that fundamental characteristic.

You should really have a Board structure, which describes what every cell contains. With that, you don't have to actually change the graphical x/y. Instead, the graphical coordinates are generated from board coordinates, whenever they're required for rendering.

+---------------------------------------------------------------------+

| Game Dev video tutorials  ->   http://www.youtube.com/goranmilovano |
+---------------------------------------------------------------------+




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS