这篇文章主要为大家详细介绍了C++使用easyx实现打砖块游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了C++使用easyx实现打砖块游戏的具体代码,供大家参考,具体内容如下
代码:
#include<graphics.h>
#include<conio.h>
#include<cstdio>
#include<time.h>
#include<cmath>
#include<stdio.h>
#include <string>
#define HEIGHT 700
#define WIDTH 400
int ball_x, ball_y;
int ball_vx, ball_vy;
int radius;
int left, right, top, bottom;
int baffle_x, baffle_y;
int baffle_size;
int baffle_move;
int brick_x, brick_y;
int brick_r;
int score;
int sleep_time;
bool isExit;
bool isLose;
void initBall() {
left = 0;
top = 0;
right = WIDTH;
bottom = HEIGHT;
ball_x = (right - left) / 2;
ball_y = (bottom - top) / 2;
ball_vx = 1;
ball_vy = 1;
radius = 15;
brick_x = 30;
brick_y = 30;
brick_r = 20;
score = 0;
sleep_time = 5;
baffle_move = 8;
isExit = false;
isLose = false;
}
void initBaffle() {
baffle_x = (right - left) / 2;
baffle_y = bottom - HEIGHT/8;
baffle_size = WIDTH/2;
}
void drawBall() {
setfillcolor(RGB(0,255, 0));
fillcircle(ball_x, ball_y, radius);
}
void drawBrick() {
if (isExit == true) {
setfillcolor(RGB(255, 255, 0));
fillcircle(brick_x, brick_y, brick_r);
}
if (isExit == false) {
isExit = 1;
brick_x = rand() % WIDTH;
brick_y = rand() % HEIGHT / 2;
}
printf("score :%d", score);
}
void drawBaffle() {
setfillcolor(RGB(255,0, 0));
line(baffle_x, baffle_y, baffle_x + baffle_size, baffle_y);
}
void updataWithInput() {
//交互
char input;
//根据键盘输入判断平台的移动
if (_kbhit()) {
input = _getch();
switch (input)
{
case 'a':
if (baffle_x > 0)
baffle_x -= baffle_move;
break;
/*case 'w':
if (baffle_y > 0)
baffle_y -= baffle_move;
break;
case 's':
if (baffle_y < bottom - 1)
baffle_y += baffle_move;
break;*/
case 'd':
if (baffle_x < right - baffle_size)
baffle_x += baffle_move;
break;
default:
break;
}
}
}
void updateBall() {
static int count = 0;
count++;
if (count == 5) {
count = 0;
ball_x += ball_vx;
ball_y += ball_vy;
}
if (ball_x <= left + radius || ball_x >= right - radius) {
ball_vx = -ball_vx;
}
if (ball_y <= top + radius) {
ball_vy = -ball_vy;
}
if (ball_y >= bottom - radius) {
isLose = true;
}
if (ball_y == baffle_y - radius && ball_x >= baffle_x && ball_x <= baffle_x + baffle_size) {
ball_vy = -ball_vy;
}
if (pow((ball_x - brick_x), 2) + pow((ball_y - brick_y), 2) <= pow((brick_r + radius), 2)) {
ball_vx = -ball_vx;
ball_vy = -ball_vy;
isExit = 0;
score++;
}
}
//void print_score() {
//
// char a[20] = "score";
// int t = 1;
// int tmp = score;
// while (score > 0) {
// t*=10;
// tmp /= 10;
// }
// for (int i = 5; i < 15 && t!=0; i++, t /= 10) {
// a[i] = score%t;
// t %= 10;
// }
// sprintf_s(a, "%d",score);
// TCHAR s[] = _T("score:");
//
// settextcolor(GREEN);
// const char* ca = a;
// outtextxy(WIDTH/2,HEIGHT/2,ca);
// outtextxy(WIDTH / 2, HEIGHT / 2,score);
/
沃梦达教程
本文标题为:C++使用easyx实现打砖块游戏


基础教程推荐
猜你喜欢
- C利用语言实现数据结构之队列 2022-11-22
- C语言基础全局变量与局部变量教程详解 2022-12-31
- C语言 structural body结构体详解用法 2022-12-06
- C++使用easyX库实现三星环绕效果流程详解 2023-06-26
- 详解c# Emit技术 2023-03-25
- C++详细实现完整图书管理功能 2023-04-04
- 如何C++使用模板特化功能 2023-03-05
- 一文带你了解C++中的字符替换方法 2023-07-20
- C/C++编程中const的使用详解 2023-03-26
- C++中的atoi 函数简介 2023-01-05