Easyx实现窗口自动碰撞的小球

Rhea ·
更新时间:2024-09-20
· 1470 次阅读

本文实例为大家分享了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; }



自动

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章