Easyx實現(xiàn)窗口自動碰撞的小球
更新時間:2022年01月14日 09:01:30 作者:shi_xiaobin
這篇文章主要為大家詳細介紹了Easyx實現(xiàn)窗口自動碰撞的小球,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了Easyx實現(xiàn)窗口自動碰撞的小球的具體代碼,供大家參考,具體內(nèi)容如下
代碼:
#include<easyx.h> #include<stdlib.h> #include<time.h> ? int main() { ?? ?//創(chuàng)建窗口 ?? ?initgraph(640, 480); ? ?? ?//定義小球的數(shù)據(jù) ?? ?int bx = getwidth() / 2; ?? ?int by = getheight() / 2; ?? ?int br = 20; ?? ?int xSpeed = 5;//速度 ?? ?int ySpeed = 5; ?? ? ?? ?//處理消息 ?? ?while (true) ?? ?{ ?? ??? ?int startTime = clock();//獲取當前的毫秒數(shù)(程序啟動到調(diào)用clock的時間) ?? ??? ?//雙緩沖 ?? ??? ?BeginBatchDraw();//開始雙緩沖 ?? ??? ?//清屏 ?? ??? ?cleardevice(); ?? ??? ?//繪制小球 ?? ??? ?setfillcolor(GREEN); ?? ??? ?solidcircle(bx, by, br); ? ?? ??? ?//移動小球 ?? ??? ?bx += xSpeed; ?? ??? ?by += ySpeed; ? ?? ??? ?//如果碰撞到邊界就反彈 ?? ??? ?if (bx+br>getwidth()||bx - br < 0) ?? ??? ?{ ?? ??? ??? ?xSpeed = -xSpeed; ?? ??? ?} ?? ??? ?if (by + br > getheight() || by - br < 0) ?? ??? ?{ ?? ??? ??? ?ySpeed = -ySpeed; ?? ??? ?} ?? ??? ? ?? ??? ?static ExMessage msg;//每次循環(huán)的時候,不要重新定義 ?? ??? ?while (peekmessage(&msg,EM_MOUSE | EM_KEY)) ?? ??? ?{ ? ?? ??? ?} ?? ??? ?EndBatchDraw();//把內(nèi)存中的圖片顯示到窗口上 ? ?? ??? ?//fps幀數(shù) ?一般游戲是24幀數(shù)或60幀數(shù) ?怎么控制幀率 ?1000毫秒/60幀=16.666 ?? ??? ?int frameTime = clock() - startTime;//獲取當前幀執(zhí)行了多少毫秒 ?? ??? ?//如果當前幀執(zhí)行時間小于美珍應該執(zhí)行的時間(提前執(zhí)行完畢) ?? ??? ?if (frameTime < 1000 / 60) ?? ??? ?{ ?? ??? ??? ?Sleep(1000 / 60 - frameTime);//多余的時間睡覺 ?? ??? ??? ?//Sleep(16); ?? ??? ?} ?? ??? ? ?? ?} ? ?? ?return 0; }
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
C++中用new創(chuàng)建二維數(shù)組和指針數(shù)組實例代碼
這篇文章主要介紹了C++中用new創(chuàng)建二維數(shù)組和指針數(shù)組實例代碼,非常不錯,具有參考借鑒價值,需要的朋友參考下2017-03-03C語言中的setlinebuf()、utmpname()、rewind函數(shù)使用
這篇文章主要介紹了C語言中的setlinebuf()、utmpname()、rewind函數(shù)使用,是C語言中操作文件的一些基本函數(shù),需要的朋友可以參考下2015-08-08C++實現(xiàn)刪除txt文件中指定內(nèi)容的示例代碼
這篇文章主要介紹了C++實現(xiàn)刪除txt文件中指定內(nèi)容的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-12-12