#include <graphics.h>
#include <conio.h>
#include <stdio.h>
int main()
{
float width, height, gravity;
float ball_x, ball_y, ball_vy, radius;
float rect_left_x, rect_top_y, rect_width, rect_height, rect_vx;
int score = 0;
width = 600;
height = 400;
gravity = 0.6;
initgraph(width, height);
radius = 20;
ball_x = width / 4;
ball_y = height - radius;
ball_vy = 0;
int isBallOnFloor = 1;
rect_height = 100;
rect_width = 20;
rect_left_x = width * 3 / 4;
rect_top_y = height - rect_height;
rect_vx = -3;
while (1)
{
if (_kbhit())
{
char input = _getch();
if (input == ' ' && isBallOnFloor == 1)
{
ball_vy = -18;
isBallOnFloor = 0;
}
}
ball_vy += gravity;
ball_y += ball_vy;
if (ball_y >= height - radius)
{
ball_vy = 0;
ball_y = height - radius;
isBallOnFloor = 1;
}
rect_left_x = rect_left_x + rect_vx;
if (rect_left_x <= 0)
{
rect_left_x = width;
score++;
rect_height = rand() % int(height / 4) + height / 4;
rect_vx = rand() / float(RAND_MAX) * 4 - 7;
}
if ((rect_left_x <= ball_x + radius)
&& (rect_left_x + rect_width >= ball_x - radius)
&& (height - rect_height <= ball_y + radius))
{
Sleep(2000);
rect_left_x = width;
score = 0;
}
cleardevice();
fillcircle(ball_x, ball_y, radius);
fillrectangle(rect_left_x, height - rect_height, rect_left_x + rect_width, height);
TCHAR s[20];
swprintf_s(s, _T("%d"), score);
settextstyle(40, 0, _T("宋体"));
outtextxy(100, 30, s);
Sleep(10);
}
closegraph();
return 0;
}
VC++跳跳乐小游戏
最新推荐文章于 2024-07-22 09:38:37 发布