欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++使用easyx實現(xiàn)打磚塊游戲

 更新時間:2022年05月11日 12:20:23   作者:Object_in_java  
這篇文章主要為大家詳細介紹了C++使用easyx實現(xiàn)打磚塊游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了C++使用easyx實現(xiàn)打磚塊游戲的具體代碼,供大家參考,具體內(nèi)容如下

代碼:

#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;
?? ?//根據(jù)鍵盤輸入判斷平臺的移動
?? ?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);
//}
int main() {
?? ?initgraph(WIDTH, HEIGHT);
?? ?BeginBatchDraw();

?? ?initBall();
?? ?initBaffle();
?? ?while (1)
?? ?{
?? ??? ?if (isLose == true) {
?? ??? ??? ?cleardevice();
?? ??? ??? ?TCHAR s[] = _T("LOSE");
?? ??? ??? ?outtextxy(WIDTH/2,HEIGHT/2, s);
?? ??? ?}
?? ??? ?FlushBatchDraw();
?? ??? ?cleardevice();
?? ??? ?drawBall();
?? ??? ?drawBrick();
?? ??? ?drawBaffle();
?? ??? ?updataWithInput();
?? ??? ?updateBall();
?? ??? ?//print_score();
?? ??? ?//Sleep(sleep_time);
?? ?}
?? ?EndBatchDraw();
?? ?closegraph();
?? ?return 0;
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++ 關(guān)鍵字 inline詳細介紹

    C++ 關(guān)鍵字 inline詳細介紹

    這篇文章主要介紹了C++ 關(guān)鍵字 inline,有需要的朋友可以參考一下
    2014-01-01
  • C++俄羅斯方塊游戲 無需圖形庫的俄羅斯方塊

    C++俄羅斯方塊游戲 無需圖形庫的俄羅斯方塊

    這篇文章主要為大家詳細介紹了無需圖形庫的C++俄羅斯方塊游戲,重溫經(jīng)典游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-06-06
  • C++歸并排序算法詳解

    C++歸并排序算法詳解

    大家好,本篇文章主要講的是C++歸并排序算法詳解,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • 位運算實現(xiàn)十進制轉(zhuǎn)換為二進制

    位運算實現(xiàn)十進制轉(zhuǎn)換為二進制

    這篇文章主要介紹了位運算實現(xiàn)十進制轉(zhuǎn)換為二進制的相關(guān)資料,需要的朋友可以參考下
    2015-03-03
  • C語言字符串?dāng)?shù)組詳解

    C語言字符串?dāng)?shù)組詳解

    這篇文章主要介紹了C語言字符串?dāng)?shù)組詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • C語言實現(xiàn)掃雷小游戲(適合初學(xué)者)

    C語言實現(xiàn)掃雷小游戲(適合初學(xué)者)

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)掃雷小游戲,適合初學(xué)者練習(xí),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • C++中的模板類繼承和成員訪問問題

    C++中的模板類繼承和成員訪問問題

    這篇文章主要介紹了C++中的模板類繼承和成員訪問問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • OpenCV實現(xiàn)車牌字符分割(C++)

    OpenCV實現(xiàn)車牌字符分割(C++)

    這篇文章主要為大家詳細介紹了OpenCV實現(xiàn)車牌字符分割,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • C++ 哈夫曼樹對文件壓縮、加密實現(xiàn)代碼

    C++ 哈夫曼樹對文件壓縮、加密實現(xiàn)代碼

    這篇文章主要介紹了C++ 哈夫曼樹對文件壓縮、加密實現(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • 淺談關(guān)于C++memory_order的理解

    淺談關(guān)于C++memory_order的理解

    這篇文章主要介紹了淺談關(guān)于C++memory_order的理解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08

最新評論