这篇文章主要为大家详细介绍了Easyx实现窗口自动碰撞的小球,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了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;
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程学习网。
沃梦达教程
本文标题为:Easyx实现窗口自动碰撞的小球


猜你喜欢
- c++ const 成员函数,返回一个 const 指针.但是返回的指针是什么类型的 const? 2022-10-11
- 详解C语言中sizeof如何在自定义函数中正常工作 2023-04-09
- C语言qsort()函数的使用方法详解 2023-04-26
- C语言手把手带你掌握带头双向循环链表 2023-04-03
- 我应该为我的项目使用相对包含路径,还是将包含目录放在包含路径上? 2022-10-30
- Easyx实现扫雷游戏 2023-02-06
- Qt计时器使用方法详解 2023-05-30
- ubuntu下C/C++获取剩余内存 2023-09-18
- C++ 数据结构超详细讲解顺序表 2023-03-25
- C语言详解float类型在内存中的存储方式 2023-03-27