返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言如何实现简单弹跳小球
  • 254
分享到

C语言如何实现简单弹跳小球

2023-06-30 13:06:47 254人浏览 独家记忆
摘要

这篇“C语言如何实现简单弹跳小球”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C语言如何实现简单弹跳小球”文章吧。本节利用

这篇“C语言如何实现简单弹跳小球”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C语言如何实现简单弹跳小球”文章吧。

本节利用 printf 函数 实现一个在屏幕上弹跳的小球,内容简单容易入门,这也是以后我们在设计更多游戏中可能用到的东西。

绘制静止的小球

我们将以如图坐标系进行游戏,即以窗口左上角为原点。

C语言如何实现简单弹跳小球

我们希望在坐标(x , y)处显示静止的小球:

#include <stdio.h>int main(){    int i,j; // 这两个量是循环中要使用的,一定先声明    int x = 5;    int y = 10;    //输出小球上方空行【x坐标】    for(i=0; i<x; i++)        printf("\n");    //输出小球左边的空格【y坐标】    for(j=0; j<y; j++)        printf(" ");    printf("o");    printf("\n");    return 0;}

随后我们可以将此文件命名为 ball.c
再使用GCC编译:

gcc ball.c -o ball.out

可以直接用cc来代替gcc
-o ball.out 表示输出文件为 ball.out
当然可以不写这些,输出会成为a.out
如果是windows系统,会输出exe文件
这里是我编译成功的结果:

C语言如何实现简单弹跳小球

里面的CGame.c是源文件,而那个绿油油的 ball.out 就是编译输出的文件。
然后运行它就可以了。

小球下落

如何让小球下落?根据我们之前规定的坐标系,可以知道只需让小球x坐标不断增加即可。但我们同时不想让每个x坐标上都留着原来的小球,所以需要使用清屏函数 system(“cls”)
注意要包含头文件<stdlib.h>

#include <stdio.h>#include <stdlib.h>int main(){    int i,j;    int x = 1;    int y = 10;    for(x=1; x<10; x++)    {        system("cls"); //每次循环先清屏        //输出小球上方空行【x坐标】        for(i=0; i<x; i++)            printf("\n");        //输出小球左边的空格【y坐标】        for(j=0; j<y; j++)            printf(" ");        printf("o");        printf("\n");        }    return 0;}

同样我们编译、运行。

上下弹跳的小球

接下来,我们要在上一步代码的基础上增加一个记录小球速度的变量 velocity 从而把小球的下落从简单的循环改为小球坐标x = x + velocity,当速度为正值时小球下落(x坐标增加),反之小球上升(x坐标减小)。

#include <stdio.h>#include <stdlib.h>int main(){    int i,j; // 这两个量是循环中要使用的,一定先声明    int x = 5;    int y = 10;    int height = 20; //边界高度,到达边界时改变方向    int velocity = 1;        while(1){        x = x + velocity;        system("cls"); //每次循环先清屏        //输出小球上方空行【x坐标】        for(i=0; i<x; i++)            printf("\n");        //输出小球左边的空格【y坐标】        for(j=0; j<y; j++)            printf(" ");        printf("o");        printf("\n");                if(x == height)        //到达下边界            velocity = -velocity; // 下落改为上升        if(X == 0)            //到达上边界            velocity = -velocity; // 上升改为下落    }    return 0;}

注意这里是个死循环,小球不断在x = 0到x = 20 中间上下弹跳,并且保持恒定速度。

斜方向弹跳

既然已经实现了上下弹跳,那么如何实现斜方向弹跳呢?
这只是很简单的速度合成而已,我们上一步已经使用 velocity 来表示小球在 x 方向的速度了,那么我们只要再加一个 y 方向的速度即可。
用什么来表示呢?speed?
一定注意,为了确保代码可读性 ,也就是说让别人好接手的情况下,注释是一方面,变量命名也是很重要的一方面。
我们可以使用 velocity_x 表示 x 方向速度,用 velocity_y 表示 y 方向速度。

那么速度控制就会变成:到达上、下边界改变x速度(即 velocity_x 的符号),到达左、右边界改变y速度(即 velocity_y 的符号)。

#include <stdio.h>#include <stdlib.h>int main(){    int i,j;    int x = 1;    int y = 5;    int velocity_x = 1;    int velocity_y = 1;    int left = 0;//左边界坐标    int right = 20;//右边界坐标    int top = 0;//上边界坐标    int bottom = 10;//下边界坐标    while(1)    {        x = x + velocity_x;        y = y + velocity_y;        system("cls"); //每次循环先清屏        //输出小球上方空行【x坐标】        for(i=0; i<x; i++)            printf("\n");        //输出小球左边的空格【y坐标】        for(j=0; j<y; j++)            printf(" ");        printf("o");        printf("\n");            if((x == top)||(x == bottom))            velocity_x = -velocity_x;        if((y == left)||(y == right))            velocity_y = -velocity_y;    }    return 0}

然后你就可以得到一个十分鬼畜(事实如此)的小球弹跳动画了。

控制小球弹跳速度

我们刚才说过,编译之后运行我们会得到一个十分鬼畜的小球弹跳动画,那么为了减缓这个动画的刷新速度(至少不会快到抽象),我们将使用 sleep 函数来在每个循环建立一个暂停机制。

sleep(50); //表示到达此处程序暂停 50ms

小结

完整代码:

#include <stdio.h>#include <stdlib.h>int main(){    int i,j;    int x = 1;    int y = 5;    int velocity_x = 1;    int velocity_y = 1;    int left = 0;//左边界坐标    int right = 20;//右边界坐标    int top = 0;//上边界坐标    int bottom = 10;//下边界坐标    while(1)    {        x = x + velocity_x;        y = y + velocity_y;        system("cls"); //每次循环先清屏        //输出小球上方空行【x坐标】        for(i=0; i<x; i++)            printf("\n");        //输出小球左边的空格【y坐标】        for(j=0; j<y; j++)            printf(" ");        printf("o");        printf("\n");        sleep(50);  //到达此处程序暂停 50ms            if((x == top)||(x == bottom))            velocity_x = -velocity_x;        if((y == left)||(y == right))            velocity_y = -velocity_y;    }    return 0}

以上就是关于“C语言如何实现简单弹跳小球”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网其他教程频道。

--结束END--

本文标题: C语言如何实现简单弹跳小球

本文链接: https://lsjlt.com/news/329225.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C语言如何实现简单弹跳小球
    这篇“C语言如何实现简单弹跳小球”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C语言如何实现简单弹跳小球”文章吧。本节利用 ...
    99+
    2023-06-30
  • C语言实现简单弹跳小球
    本文实例为大家分享了C语言实现简单弹跳小球的具体代码,供大家参考,具体内容如下 本节利用 printf 函数 实现一个在屏幕上弹跳的小球,内容简单容易入门,这也是以后我们在设计更多游...
    99+
    2024-04-02
  • C语言怎么实现简单弹跳小球
    C语言可以通过使用图形库来实现简单的弹跳小球效果。首先,需要安装并使用一个图形库,比如Graphics.h。下面是一个简单的示例代码...
    99+
    2023-08-18
    C语言
  • C语言如何实现弹跳小球动画
    这篇文章主要介绍了C语言如何实现弹跳小球动画的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言如何实现弹跳小球动画文章都会有所收获,下面我们一起来看看吧。一、项目描述和最终成果展示项目描述:  一个...
    99+
    2023-06-30
  • C语言实现弹跳小球项目
    目录一、项目描述和最终项目展示二、输出一个小球三、下落的小球四、来回弹跳的小球五、最终项目实现本文实例为大家分享了C语言实现弹跳小球项的具体代码,供大家参考,具体内容如下 一、项目描...
    99+
    2024-04-02
  • C语言实现弹跳小球动画
    目录一、项目描述和最终成果展示二、实现一个移动的球三、弹跳一个小球四、弹跳一个小球(改进版)五、多个球碰撞六、多个球碰撞(升级版)本文实例为大家分享了C语言实现弹跳小球动画的具体代码...
    99+
    2024-04-02
  • C语言怎么实现弹跳小球效果
    本文小编为大家详细介绍“C语言怎么实现弹跳小球效果”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言怎么实现弹跳小球效果”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、项目描述和最终项目展示项目描述: &n...
    99+
    2023-06-30
  • C语言基于EasyX库实现有颜色弹跳小球
    本文实例为大家分享了基于EasyX库实现有颜色弹跳小球的具体代码,供大家参考,具体内容如下 1.目标要求 1.实现一个有颜色小球在窗口中弹跳2.遇到边界弹跳 2.C语言代码 #inc...
    99+
    2024-04-02
  • C语言实现简单反弹球消砖块游戏
    反弹球消砖块,是一款很简单的打砖块游戏,控制你的挡板挡住弹球,打掉上面的砖块,本篇博客中,主要使用printf与scanf函数实现消砖块游戏 整体思路 主函数 int main() ...
    99+
    2024-04-02
  • html5如何实现弹跳球
    小编给大家分享一下html5如何实现弹跳球,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 代码如下:<html> ...
    99+
    2024-04-02
  • CSS3如何实现弹跳的小球动画
    小编给大家分享一下CSS3如何实现弹跳的小球动画,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!这个案例关键点在于小球弹跳的节奏感和布局定位。一、案例知识点相对和绝...
    99+
    2023-06-08
  • C++实现简易的弹球小游戏
    本文实例为大家分享了C++实现弹球小游戏的具体代码,供大家参考,具体内容如下 操作说明:键盘A和D键控制左右移动,让球不要落下。 #include <graphics.h&...
    99+
    2024-04-02
  • html5实现弹跳球小游戏
    这篇文章主要介绍“html5实现弹跳球小游戏”,在日常操作中,相信很多人在html5实现弹跳球小游戏问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”html5实现弹跳球小游戏”...
    99+
    2024-04-02
  • 原生js实现弹跳小球
    突发奇想,写了个小球来回弹跳的案例,供大家参考,具体内容如下 主要就是利用了margin-left / top 值进行位移,当然,也可以使用定位去做。 本案例所用到的有: ...
    99+
    2024-04-02
  • JS实现简单打砖块弹球小游戏
    本文实例为大家分享了JS实现打砖块弹球小游戏的具体代码,供大家参考,具体内容如下 使用原生JS写的,还有一点瑕疵。代码直接复制到html就能使用 速度随机的 因为设涉及横向和纵向速度...
    99+
    2024-04-02
  • C语言如何实现简单扫雷小游戏
    本篇内容主要讲解“C语言如何实现简单扫雷小游戏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言如何实现简单扫雷小游戏”吧!前言今天学习了制作简易扫雷游戏,代码如下提示:以下是本篇文章正文内容...
    99+
    2023-06-20
  • C语言如何实现简单五子棋小游戏
    这篇文章主要介绍C语言如何实现简单五子棋小游戏,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!本文实例为大家分享了C语言实现简单五子棋小游戏的具体代码,供大家参考,具体内容如下效果图如下:设计思路:棋盘设计为15×15...
    99+
    2023-06-15
  • C语言如何实现简单猜数字小游戏
    这篇文章主要介绍C语言如何实现简单猜数字小游戏,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!猜数字游戏是令游戏机随机产生一个100以内的正整数用户输入一个数对其进行猜测,需要你编写程序自动对其与随机产生的被猜数进行比...
    99+
    2023-06-21
  • C语言实现双人反弹球游戏
    本文项目为大家分享C语言实现双人反弹球游戏的具体代码,供大家参考,具体内容如下 一、最终项目描述和效果 项目描述:   实现双人玩的弹跳球游戏 最终效果图如下: 二、基本...
    99+
    2024-04-02
  • python实现简单反弹球游戏
    python简单游戏-反弹球,供大家参考,具体内容如下 tkinter实现,直接贴上代码 from tkinter import* import time import rand...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作