本文实例为大家分享了Easyx实现窗口自动碰撞的小球的具体代码,供大家参考,具体内容如下
代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
#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