C++实现简易反弹小球游戏的示例代码

目录
  • 前言
  • 一、显示静止的小球
  • 二、小球下落
  • 三、上下弹跳的小球
  • 四、斜着弹跳的小球
  • 五、控制小球弹跳的速度
  • 六、完整代码

前言

我们利用printf 函数实现一个在屏幕上弹跳的小球,如图所示。弹跳的小球游戏比较简单、容易入门,也是反弹球消砖块、接金币、台球等很多游戏的基础。

完成游戏前需要掌握的语法知识:标识符、变量、常量、运算符与表达式,以及 printf、scanf、if-else、while、for 语句的用法。

正文部分我们会逐步进行讲解,前一部分是后一部分的基础,大家不要跳过阅读。

一、显示静止的小球

首先利用 printf 函数在屏幕坐标(x,y)处显示一个静止的小球字符'o',注意屏幕坐标系的原点在左上角,如图

#include<stdio.h>
int main()
{
    int i,j;
    int x=5;
    int y=10;

    //输出小球上面的空行
    for(i=0;i<x;i++)
       printf("\n");
    //输出小球左边的空格
    for(j=0;j<y;j++)
       printf(" ");
    printf("o");//输出小球
    printf("\n");
    return 0;
 } 

二、小球下落

改变小球的坐标变量,即让小球的i坐标增加,从而让小球下落。在每次显示之前使用了清屏函数system("cls"),注意需要包含新的头文件#include<stdlib.h>。

#include<stdio.h>
 #include<stdlib.h>
 int main()
 {
     int i,j;
    int x=1;
    int y=10;
    for(x=1;x<10;i++)
    {
        system("cls");//清屏函数
        //输出小球上面的空行
        for(i=0;i<x;i++)
           printf("\n");
        //输出小球左边的空格
        for(j=0;j<y;j++)
           printf(" ");
        printf("o");//输出小球
        printf("\n");
        return 0;
    }
     return 0;
 }

三、上下弹跳的小球

在上一步代码的基础上增加记录速度的变量 velocity,小球的新位置x=旧位置x+速度velocity。当判断小球到达上、下边界时改变方向,即改变velocity 的正负号。

#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");// 清屏函数

        //输出小球上面的空行
        for(i=0;i<x;i++)
           printf("\n");
        //输出小球左边的空格
        for(j=0;j<y;j++)
           printf(" ");//输出小球
        printf("o");
        printf("\n");   

        if(x==height)
           velocity=-velocity;
        if(x==0)
           velocity=-velocity;
    }
    return 0;
 }

四、斜着弹跳的小球

下面让程序更有趣,使小球斜着弹跳,主要思路是增加x、y两个方向的速度控制变量velocity_x、velocity_y,初值为1;velocity_x碰到上、下边界后改变正负号,velocity_y碰到左、右边界后改变正负号。

 #include<stdio.h>
 #include<stdlib.h>
 int main()
 {
     int i,j;
    int x=0;
    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");
        //
        for(i=0;i<x;i++)
           printf("\n");
        //
        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 函数(#include<windows.h>)。比如 sleep(10)表示程序执行到此处暂停 10ms,从而控制小球弹跳的速度。

六、完整代码

 #include<stdio.h>
 #include<stdlib.h>
 #include<windows.h>
 int main()
 {
     int i,j;
    int x=0;
    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");
        //
        for(i=0;i<x;i++)
           printf("\n");
        //
        for(j=0;j<y;j++)
           printf(" ");
        printf("o");
        printf("\n");
        Sleep(10);  

        if(x==top||x==bottom)
           velocity_x=-velocity_x;
        if(y==left||y==right)
           velocity_y=-velocity_y;
    }
    return 0;
 }

以上就是C++实现简易反弹小球游戏的示例代码的详细内容,更多关于C++反弹小球游戏的资料请关注我们其它相关文章!

(0)

相关推荐

  • C++实现扫雷小游戏(控制台)

    本文实例为大家分享了C++实现扫雷小游戏的具体代码,供大家参考,具体内容如下 1.问题描述 用c++写一个扫雷小游戏,扫雷大家都玩过吧,先任意点一个方格,没有爆炸时,会出现一个数字,这个数字是以它为中心的9个格子内所有雷的个数.一般围在一堆数字中间的有可能是雷,你在你认为是雷的那里右击,就可以把它设定为雷,然后在数字区用鼠标左右键双击,可以打开非雷区,所有雷被标记后,就赢了.今天我们写的程序需要能实现以下几个功能 (1).输入坐标打开一个格子,此格子若是雷则游戏结束,若不是则显示周围雷的个数.(

  • C++ 迷宫游戏实现代码

    C++ 迷宫游戏实现代码 题目 通过让游戏角色自动寻找迷宫出口,走出迷宫,来练习C++面向对象之封装的基础知识.迷宫图如下所示,其中X表示墙. 1.程序分析 走出去的原理:遵循右手规则或左手规则.右手扶墙走,就会走出迷宫,反之,亦然. step1 创建迷宫类,打印出迷宫地图. step2 创建走迷宫的人的类. 2.程序实现 MazeMap.h #ifndef MAZEMAP_H #define MAZEMAP_H #include <iostream> #include <Windows

  • C++实现简易的弹球小游戏

    本文实例为大家分享了C++实现弹球小游戏的具体代码,供大家参考,具体内容如下 操作说明:键盘A和D键控制左右移动,让球不要落下. #include <graphics.h> #include <conio.h> #include <time.h> int i; int xx=0; int yy = 0; class Ball { public: int x, y; clock_t b; void draw() { setfillcolor(RGB(200, 399, 1

  • C++实现LeetCode(312.打气球游戏)

    [LeetCode] 312. Burst Balloons 打气球游戏 Given n balloons, indexed from 0 to n-1. Each balloon is painted with a number on it represented by array nums. You are asked to burst all the balloons. If the you burst balloon iyou will get nums[left] * nums[i]

  • C/C++实现经典象棋游戏的示例代码

    目录 大体思路 效果展示 核心代码 大体思路 采用面相过程的设计方式实现,类似于我们平时做的课程设计,实现这样的小游戏无非就是多了图形处理库.这里使用的是acllib图形库. 设计这种小游戏,首先要从宏观上去认识:象棋,要有棋盘,要有棋子,棋子要移动. 对于棋盘,十行九列画出即可. 对于棋子,分黑红两方,按照指定位置画出. 如何移动棋子,我们有mouseEvent函数. 初始化棋盘棋子:initmap,initpaint 利用鼠标实现棋子移动分两步(mouseEvent): 第一次点击,记录点击

  • C++实现简易反弹小球游戏的示例代码

    目录 前言 一.显示静止的小球 二.小球下落 三.上下弹跳的小球 四.斜着弹跳的小球 五.控制小球弹跳的速度 六.完整代码 前言 我们利用printf 函数实现一个在屏幕上弹跳的小球,如图所示.弹跳的小球游戏比较简单.容易入门,也是反弹球消砖块.接金币.台球等很多游戏的基础. 完成游戏前需要掌握的语法知识:标识符.变量.常量.运算符与表达式,以及 printf.scanf.if-else.while.for 语句的用法. 正文部分我们会逐步进行讲解,前一部分是后一部分的基础,大家不要跳过阅读.

  • Matlab实现简易纪念碑谷游戏的示例代码

    按上下左右键(↑↓←→)移动物块 按AD键转动视角 游戏效果:如图所示原本无法通过的路径经过视角调整即可通过 完整代码 function maze4 global maze; global GUI; global role; GUI.fig=figure('units','pixels',... 'position',[350 100 500 500],... 'Numbertitle','off',... 'name','maze',... 'Color',[0 0 0],... 'resiz

  • 基于Python编写简易版的天天跑酷游戏的示例代码

    写出来的效果图就是这样了: 下面就更新一下全部的代码吧 还是老样子先定义 import pygame,sys import random 写一下游戏配置 width = 1200            #窗口宽度 height = 508            #窗口高度 size = width, height    score=None              #分数 myFont=myFont1=None     #字体 surObject=None          #障碍物图片   

  • Python快速实现简易贪吃蛇小游戏的示例代码

    贪吃蛇(也叫做贪食蛇)游戏是一款休闲益智类游戏,有PC和手机等多平台版本.既简单又耐玩.该游戏通过控制蛇头方向吃蛋,从而使得蛇变得越来越长. 贪吃蛇游戏最初为单机模式,后续又陆续推出团战模式.赏金模式.挑战模式等多种玩法. 另外还有一种名为“贪吃蛇”钻井测井技术,是运用旋转导向系统.随钻测井系统等的油气田定向钻井.随钻测井技术,可完成海上“丛式井”和复杂油气层的开采需求,大幅降低油气田开发综合成本. 依然是基于pygame库,pip install pygame安装即可 完整代码如下: # 导入

  • 基于Unity3D实现3D迷宫小游戏的示例代码

    目录 一.前言 二.构思 三.正式开发 3-1.搭建场景 3-2.设置出入口 3-3.添加角色 3-4.实现角色移动 3-5.出入口逻辑 四.总结 一.前言 闲来无事,从零开始整个<3D迷宫>小游戏. 本篇文章会详细介绍构思.实现思路,希望可以帮助到有缘人. 二.构思 首先,要实现一个小游戏,心里肯定要有一个大概的想法,然后就是将想法完善起来. 我的想法就是一个用立体的墙搭建的迷宫,然后控制人物在迷宫中移动,最后找到出口,就这么简单. 当然,这是一个雏形,比如可以加点音效.背景.关卡.解密等.

  • 基于C语言实现迷宫游戏的示例代码

    目录 C语言迷宫游戏 定义地图 打印地图方法一 打印地图方法二 定义起点和终点位置 实现读取按键 实现小球下向下移动一步 总结小球移动规律 实现重新打印地图 实现连续移动 实现小球下向上下左右移动 实现小球走到终点就胜利 C语言迷宫游戏 这篇文章是给学完并学懂了C语言的分支(选择和循环)结构和二维数组的朋友看的. 要做一个游戏或者程序先要想好有那些要求,以下是我认为一个迷宫必带的要求: 迷宫要先打印出来(要设置墙.空气.小球的起点),是墙就不能,是空气就可以走. 每次输入'w'.'a'.'s'.

  • JS+Canvas实现接球小游戏的示例代码

    目录 写在最前 git地址 成果展示 实现思路 详细说明 写在最后 写在最前 看了canvas的动画系列,已经抑制不住内心的冲动想写个小游戏了,还是那个套路——多写写,你才能了解它.加上这两天下班后我都没有机会去摸摸篮球,所以就写了个接球的小游戏(准确的说不能叫游戏,太简单了,叫动画吧...). 都是一些基础的实现,有时间你也可以试试,废话说到这里,我们开始吧. git地址 https://github.com/ry928330/ballGame.git 成果展示 实现思路 这里我们采用疑问的句

  • WPF+ASP.NET SignalR实现简易在线聊天功能的示例代码

    目录 涉及知识点 什么是ASP.NET SignalR 在线聊天整体架构 ASP.NET SignalR在线聊天服务端 1. 创建ASP.NET Web API项目 2. 创建消息通知中心Hub 3. 注册服务和路由 4. ASP.NET SignalR中心对象生存周期 SignalR客户端 1. 安装SignalR客户端依赖库 2. 客户端消息接收发送 运行示例 在实际业务中,当后台数据发生变化,客户端能够实时的收到通知,而不是由用户主动的进行页面刷新才能查看,这将是一个非常人性化的设计.有没

  • vue 2.0 购物车小球抛物线的示例代码

    本文介绍了vue 2.0 购物车小球抛物线的示例代码,分享给大家,具体如下: 备注:此项目模仿 饿了吗.我用的是最新的Vue, 视频上的一些写法已经被废弃了. 布局代码 <div class="ball-container"> <transition name="drop" v-for="ball in balls" @before-enter="beforeDrop" @enter="droppi

  • 使用c#实现随机数猜数游戏的示例代码

    本文主要介绍了使用c#实现随机数猜数游戏,分享给大家,具体如下: using System;//在任何 C# 程序中的第一条语句都是:using System的意思是引用名称为baiSystem的命名空间 using System.Runtime.InteropServices.ComTypes;//c#语言的互操作服务, namespace ConsoleApp5//namespace 声明.一个 namespace 里包含了一系列的类. { class Program//定义类名 { sta

随机推荐