Jump to content
  • Advertisement

C++ win32 breakout

Recommended Posts

Posted (edited)

Why don't you want to open Youtube or the Internet and search:

  • c++ breakout tutorial


  • c++ arkanoid tutorial

I like this tutorial that was created by Mozilla team "2D breakout game using pure JavaScript": https://developer.mozilla.org/en-US/docs/Games/Tutorials/2D_Breakout_game_pure_JavaScript

It uses Canvas API and JavaScript but you can translate it to C++. For example, I want to translate it to C# and OpenGL 3. I will use textures instead of colors. I will publish my result here to show you how it is simple to translate it to another language and drawing method. If you like C++ you can translate it to SFML or SDL2. They are cross-platform. I like cross-platform tools because a lot of people use Mac or Linux. But if you use WinAPI to study how Windows works - it is good.

Edited by 8Observer8

Share this post

Link to post
Share on other sites

Hi Phil.

#DerTroll had a number of valid questions that you ignored. That is not how an idea exchange works. I've had better conversations with my cat, who by the way has an opinion here as well.

edit: @8Observer8 thank you for the pure javascript breakout thing. I did a speed run on that yesterday and very much enjoyed myself for the hour it took to breeze through it. Very cool.  Looking at that, it's obvious...Every (gameplay) problem phil has spoke to in the last six months is answered simply in very (umm, very) short code sequences and at least a paragraph of description for every line. Ignoring environment, the concepts are easily interpreted to other languages or even visual programming. Skipping that is a missed opportunity in this case.  

Share this post

Link to post
Share on other sites

After not programming in C++ for several years, I found that going through this:


Was very helpful. It doesn't take very long to get through, and once you're done with that you'll be able to program in C++ a lot faster.


I have very simple question. how do I black out a brick when  the ball hits it, I want the ball to bounce off the brick and then erase the brick and the next time I want the ball to pass through where the brick was at. I am doing this game in win32 because I want to get good at direct x , this a launching platform.

The short answer is to stop drawing it. If that doesn't work, then you'e probably not refreshing every frame, and that means you missed a very fundamental design pattern in video games made for the last 40 years.

Each frame should start blank, and get drawn to. You should have two canvases at any given time, one that is being displayed, and one that is being drawn to. Once drawing is done, that canvas should be flipped to be displayed and the next frame should start drawing.

A simple game loop would look something like this:

bool gameRunning = true;
double thisTime;
double deltaTime;
// Not a real function, this is sudo code.
double lastTime = GetSystemTimeInMiliseconds();

while (gameRunning) {
	// We want to know how much time passed between now and the last updates.
	thisTime = GetSystemTimeInMiliseconds();
	deltaTime = thisTime - lastTime;
	lastTime = thisTime;

	// Check inputs
	// Update all the active actors, check collisions.
	// Draw all the active actors to a canvas and then flip the canvas to the display.

Once you have that working, then to "black out" a brick is as simple as not drawing it anymore.

Game loops get more complicated, but I think this is the best place to start.

Share this post

Link to post
Share on other sites
28 minutes ago, Alberth said:


Can you write a function that takes a boolean, and prints "hello" if the boolean is true?

Now you did it, he's going to change his game back to pong.

Share this post

Link to post
Share on other sites
This topic is now closed to further replies.

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!