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

 更新时间:2022年01月14日 09:01:30   作者:shi_xiaobin  
这篇文章主要为大家详细介绍了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;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • C++中用new创建二维数组和指针数组实例代码

    C++中用new创建二维数组和指针数组实例代码

    这篇文章主要介绍了C++中用new创建二维数组和指针数组实例代码,非常不错,具有参考借鉴价值,需要的朋友参考下
    2017-03-03
  • C++中的String的常用函数用法

    C++中的String的常用函数用法

    这篇文章主要介绍了C语言中String的常用函数用法,对学习String的小伙伴有一定的参考价值,感兴趣的小伙伴可以借鉴一下
    2023-03-03
  • c语言中return与exit的区别浅析

    c语言中return与exit的区别浅析

    c语言中return与exit的区别浅析,需要的朋友可以参考一下
    2013-03-03
  • C语言中的setlinebuf()、utmpname()、rewind函数使用

    C语言中的setlinebuf()、utmpname()、rewind函数使用

    这篇文章主要介绍了C语言中的setlinebuf()、utmpname()、rewind函数使用,是C语言中操作文件的一些基本函数,需要的朋友可以参考下
    2015-08-08
  • C++实现删除txt文件中指定内容的示例代码

    C++实现删除txt文件中指定内容的示例代码

    这篇文章主要介绍了C++实现删除txt文件中指定内容的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • c++自定义sort()函数的排序方法介绍

    c++自定义sort()函数的排序方法介绍

    这篇文章主要介绍了c++自定义sort()函数的排序方法介绍,文章通过围绕主题展开详细的内容戒杀,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • 利用C++制作人生模拟器游戏的示例代码

    利用C++制作人生模拟器游戏的示例代码

    这篇文章主要为大家详细介绍了如何利用C++制作一个当下很火的人生模拟器游戏,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-05-05
  • MFC程序执行过程深入剖析

    MFC程序执行过程深入剖析

    这篇文章主要介绍了MFC程序执行过程,包括对MFC执行流程的分析以及断点调试分析出的SDI程序执行流程,需要的朋友可以参考下
    2014-09-09
  • C++11 简单实现线程池的方法

    C++11 简单实现线程池的方法

    这篇文章主要介绍了C++11 简单实现线程池的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • C++实现广度优先搜索实例

    C++实现广度优先搜索实例

    这篇文章主要介绍了C++实现广度优先搜索,对于C++程序员来说非常有借鉴价值,需要的朋友可以参考下
    2014-08-08

最新评论