65.9K
CodeProject 正在变化。 阅读更多。
Home

在 Win32 控制台中玩 Pong

starIconstarIconstarIconstarIconemptyStarIcon

4.00/5 (9投票s)

2010年7月15日

CPOL

2分钟阅读

viewsIcon

46595

downloadIcon

1895

在 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 日:初始发布
© . All rights reserved.