網站首頁 編程語言 正文
本文實例為大家分享了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-07-02 如何對numpy?矩陣進行通道間求均值_python
- 2023-03-22 golang如何使用gomobile進行Android開發_Golang
- 2022-09-30 C#?wpf?Grid中實現控件拖動調整大小的示例代碼_C#教程
- 2022-06-18 C語言簡明講解操作符++和--的使用方法_C 語言
- 2022-07-04 Python迭代器的實現原理_python
- 2022-06-12 golang的協程上下文的具體使用_Golang
- 2022-07-07 Python數據分析之?Matplotlib?折線圖繪制_python
- 2022-05-12 Kotlin filter 根據條件過濾數組
- 最近更新
-
- 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同步修改后的遠程分支