最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 淺談c++調(diào)用python鏈接的問題及解決方法

    淺談c++調(diào)用python鏈接的問題及解決方法

    下面小編就為大家?guī)硪黄獪\談c++調(diào)用python鏈接的問題及解決方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • C++實現(xiàn)路口交通燈模擬系統(tǒng)

    C++實現(xiàn)路口交通燈模擬系統(tǒng)

    這篇文章主要為大家詳細介紹了C++實現(xiàn)路口交通燈模擬系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C++ 中函數(shù)重載、覆蓋與隱藏詳解

    C++ 中函數(shù)重載、覆蓋與隱藏詳解

    這篇文章主要介紹了C++ 中函數(shù)重載、覆蓋與隱藏詳解的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • char str[] 與 char *str的區(qū)別詳細解析

    char str[] 與 char *str的區(qū)別詳細解析

    以下是對char str[]與char *str的區(qū)別進行了詳細的介紹,需要的朋友可以過來參考下
    2013-09-09
  • C++ OpenCV實現(xiàn)灰度圖蒙版GrayMask的示例代碼

    C++ OpenCV實現(xiàn)灰度圖蒙版GrayMask的示例代碼

    這篇文章主要為大家詳細介紹了如何利用C++和OpenCV實現(xiàn)灰度圖蒙版GrayMask,文中的示例代碼講解詳細,對我們學習或工作有一定參考價值,需要的可以參考一下
    2022-05-05
  • C/C++?Qt?運用JSON解析庫的實例代碼

    C/C++?Qt?運用JSON解析庫的實例代碼

    這篇文章主要介紹了C/C++?Qt?運用JSON解析庫的相關(guān)知識,通過代碼依次解析這個json文件中的每一個參數(shù),代碼簡單易懂,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01
  • C++浮點型的存儲方式詳解

    C++浮點型的存儲方式詳解

    本篇文章是對C/C++浮點數(shù)在內(nèi)存中的存儲方式進行了詳細的分析介紹,需要的朋友參考下,希望能夠給你帶來幫助
    2021-09-09
  • C++學習筆記之類與對象詳解

    C++學習筆記之類與對象詳解

    這篇文章主要為大家介紹了C++類與對象,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • C語言使用setjmp和longjmp實現(xiàn)一個簡單的協(xié)程

    C語言使用setjmp和longjmp實現(xiàn)一個簡單的協(xié)程

    這篇文章主要為大家介紹了C語言使用setjmp和longjmp實現(xiàn)一個簡單的協(xié)程過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • C++實現(xiàn)LeetCode(41.首個缺失的正數(shù))

    C++實現(xiàn)LeetCode(41.首個缺失的正數(shù))

    這篇文章主要介紹了C++實現(xiàn)LeetCode(41.首個缺失的正數(shù)),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-07-07

最新評論

红桥区| 德格县| 沁阳市| 奉新县| 龙岩市| 威信县| 建德市| 图木舒克市| 富阳市| 兴和县| 保定市| 平罗县| 越西县| 兴义市| 横峰县| 剑阁县| 长垣县| 北安市| 绥中县| 定边县| 西平县| 澎湖县| 玉屏| 聊城市| 临沂市| 桐乡市| 平谷区| 榕江县| 门源| 嘉兴市| 积石山| 于都县| 虎林市| 安阳市| 布拖县| 柏乡县| 汾阳市| 铅山县| 平邑县| 黄石市| 株洲市|