Windows 2008 R2Windows 2008Visual C++ 7.1Visual C++ 8.0Windows VistaVisual C++ 7.0Windows 7Windows 2003Win32Windows 2000Visual C++ 6.0Windows XPWindowsC++
在 Win32 控制台中玩 Pong





4.00/5 (9投票s)
在 Win32 控制台中玩 Pong

引言
Pong 是最早的街机视频游戏之一,也是一款模拟乒乓球的二维体育游戏,由 Atari Inc. 于 1972 年 6 月开发。玩家通过垂直移动屏幕左侧的挡板来控制游戏中的挡板,可以与电脑控制的对手或控制对侧第二个挡板的另一名玩家竞争。玩家使用挡板来回击球。目标是让一名玩家获得比对手更多的分数;当一方未能将球返回给另一方时,即可获得分数。
Pong 是一款简单的游戏,易于编写代码。游戏涉及一个球和两个挡板。球在游戏世界中自行移动,玩家移动挡板。如果球击中墙壁或落在挡板上,则改变球的一般方向。但如果球错过了挡板,则向玩家显示消息 - 你错过了 -。
控制方式如下:
上 | 向上移动挡板 |
下 | 向下移动挡板 |
TAB | 切换作弊模式开启/关闭 |
F1 | 显示帮助 |
编写 Pong 游戏核心逻辑的代码如下。首先更新 Pong 球的位置
//update ball's x location
ball.x+=ball.headingX;
//update ball's y location
ball.y+=ball.headingY;
然后使用一系列“if
”语句测试或检查球在游戏世界位置中的 y 坐标。如果球击中顶部或底部墙壁,则改变球的一般方向。
/* check if ball's location at top or bottom of screen,if true reverse ball's y heading */
if( (ball.yPONG_SCREEN_BOTTOM-2) ) ball.headingY=-ball.headingY;
现在检查球是否落在挡板上,如果是,则使球反弹。
/* check if ball lands on pad, if true bounce back */
if ( (ball.y>= PlayersPad.LEFT) &&
(ball.y<= PlayersPad.RIGHT) && (ball.x==PlayersPad.x))
{
ball.headingX=-ball.headingX;
playersScore+=10;
}
但如果球错过了挡板,则向玩家显示消息 - 你错过了 -。
if ( ball.x < PONG_SCREEN_LEFT) displayYouMissed();
就这样。下载源代码并查看。感谢阅读。
历史
- 2010 年 7 月 15 日:初始发布