網站首頁 編程語言 正文
本文實例為大家分享了Easyx實現窗口自動碰撞的小球的具體代碼,供大家參考,具體內容如下
代碼:
#include<easyx.h> #include<stdlib.h> #include<time.h> ? int main() { ?? ?//創建窗口 ?? ?initgraph(640, 480); ? ?? ?//定義小球的數據 ?? ?int bx = getwidth() / 2; ?? ?int by = getheight() / 2; ?? ?int br = 20; ?? ?int xSpeed = 5;//速度 ?? ?int ySpeed = 5; ?? ? ?? ?//處理消息 ?? ?while (true) ?? ?{ ?? ??? ?int startTime = clock();//獲取當前的毫秒數(程序啟動到調用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;//每次循環的時候,不要重新定義 ?? ??? ?while (peekmessage(&msg,EM_MOUSE | EM_KEY)) ?? ??? ?{ ? ?? ??? ?} ?? ??? ?EndBatchDraw();//把內存中的圖片顯示到窗口上 ? ?? ??? ?//fps幀數 ?一般游戲是24幀數或60幀數 ?怎么控制幀率 ?1000毫秒/60幀=16.666 ?? ??? ?int frameTime = clock() - startTime;//獲取當前幀執行了多少毫秒 ?? ??? ?//如果當前幀執行時間小于美珍應該執行的時間(提前執行完畢) ?? ??? ?if (frameTime < 1000 / 60) ?? ??? ?{ ?? ??? ??? ?Sleep(1000 / 60 - frameTime);//多余的時間睡覺 ?? ??? ??? ?//Sleep(16); ?? ??? ?} ?? ??? ? ?? ?} ? ?? ?return 0; }
原文鏈接:https://blog.csdn.net/shi_xiaobin/article/details/122448763
相關推薦
- 2022-03-25 C語言設計模式之命令模式介紹_C 語言
- 2023-10-17 react跨域請求數據(proxy)
- 2022-04-02 Android中Button實現點擊換圖案及顏色_Android
- 2022-06-09 ASP.NET?Core中的Configuration配置二_基礎應用
- 2022-06-29 python中py文件與pyc文件相互轉換的方法實例_python
- 2023-10-25 對于Echarts實例化與銷毀的一些運用
- 2023-01-09 No?module?named?'plotly.graph_objects'報錯解決_python
- 2023-01-13 Pytorch實現Fashion-mnist分類任務全過程_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支