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, 100));
  fillcircle(x, y, 10);
 }
 void null()
 {
  setfillcolor(0);
  setlinecolor(0);
  fillcircle(x, y, 10);

 }
};

class Board
{
public:
 int x, y;
 void draw()
 {
  setlinecolor(RGB(100, 209, 150));
  setfillcolor(RGB(200, 399, 100));
  fillrectangle(x, y, x+60,y+10);

 }
 void null()
 {
  setfillcolor(0);
  setlinecolor(0);
  fillrectangle(x, y, x + 60, y + 10);

 }

};

void wall()
{
 setlinecolor(RGB(300, 109, 650));
 setfillcolor(RGB(200, 409, 300));
 POINT pts[] = { {1, 1}, {1, 350}, {10,350 }, {10,10 }, {600, 10}, {600, 350}, {610,350}, {610,1 } };
 fillpolygon(pts, 8);
}

int main()
{

 // 初始化图形窗口
 initgraph(640, 480,4);
 wall();
 Board board;
 board.x = 200;
 board.y = 400;
 Ball ball;
 clock_t f = clock();
 clock_t d = clock();

 while (1)
 {
  int i=3 ;
  if (GetAsyncKeyState('A') & 0x8000)//木板移动
  {
   if (board.x > 2 && (clock() - d) >= 10)
   {
    board.null(); board.x -= 3; board.draw(); d = clock();
   }
  }
  if (GetAsyncKeyState('a') & 0x8000)//木板移动
  {
   if (board.x > 2 && (clock() - d) >= 10)
   {
    board.null(); board.x -= 3; board.draw(); d = clock();
   }
  }

  if (GetAsyncKeyState('D') & 0x8000)//木板移动
  {
   if (board.x < 600 && (clock() - d) >= 10)
   {
    board.null(); board.x += 3; board.draw(); d = clock();
   }
  }
  if (GetAsyncKeyState('d') & 0x8000)//木板移动
  {
   if (board.x <600 && (clock() - d) >= 10)
   {
    board.null(); board.x += 3; board.draw(); d = clock();
   }
  }

  if (GetAsyncKeyState('K') & 0x8000)//发球
  {
    if  (yy==0&&xx==0&&(clock() - f) >= 10)
    {
     yy = 1;
     xx = 1;
     ball.x = board.x + 50;
     ball.y = board.y - 21;
     ball.draw();
     f = clock();
    }
  }
  if (GetAsyncKeyState('k') & 0x8000)//发球
  {
    if (yy==0&&xx==0&& (clock() - f) >= 10)
    {
     yy = 1;
     xx = 1;
     ball.x = board.x + 50;
     ball.y = board.y - 21;
     ball.draw();
     f = clock();
    }
  }

   //球的弹射//
  if (yy==1&&xx==1&&clock()-ball.b>5)
  {
   ball.null();
   ball.x -= 2;
   ball.y -= 2;
   ball.draw();
   ball.b = clock();
   if (ball.y <= 21)
   {
    ball.y = 21;
    ball.null();
    xx = 4;
   }

   if (ball.x <= 24)
   {
    ball.x = 24;
    ball.null();
    xx = 2;
   }

  }

  if (yy==1&&xx == 2 && clock() - ball.b > 5)
  {
   ball.null();
   ball.x += 2;
   ball.y -= 2;
   ball.draw();
   ball.b = clock();
   if (ball.y <= 21)
   {
    ball.y = 21;
    ball.null();
    xx = 3;
   }
   if (ball.x >= 580)
   {
    ball.x = 580;
    ball.null();
    xx = 1;
   }

  }
  if (yy==1&&xx == 3 && clock() - ball.b > 5)
  {
   ball.null();
   ball.x += 2;
   ball.y += 2;
   ball.draw();
   ball.b = clock();

   if (ball.x >= 580)
   {
    ball.x = 580;
    ball.null();
    xx = 4;
   }

   if (ball.x >= board.x && ball.x <= board.x + 60 && ball.y <= board.y + 9 && ball.y >= board.y - 11)
   {
    ball.null();
    ball.y = board.y - 21;
    ball.draw();
    xx = 2;
   }
  }

  if (yy==1&&xx == 4 && clock() - ball.b > 5)
  {
   ball.null();
   ball.x -= 2;
   ball.y += 2;
   ball.draw();
   ball.b = clock();

   if (ball.x <= 24)
   {
    ball.x = 24;
    ball.null();
    xx = 3;
   }
   if (ball.x >= board.x && ball.x <= board.x + 60 && ball.y <= board.y + 9 && ball.y >= board.y - 11)
   {
    ball.null();
    ball.y = board.y - 21;
    ball.draw();
    xx = 1;
   }
  }

  if (ball.y >= 440)
  {
   yy = 0;
   xx = 0;
   ball.null();
  }

 }

    closegraph();
 return 0;
}

小编再为大家分享一段代码:C语言实现简单的控制台弹跳小球

#include <stdio.h>

#include <stdlib.h>
#include <conio.h>
#include <windows.h>

// 全局变量
 int x,y;     //小球坐标
 int velocity_x,velocity_y ; //速度
 int left,right,top,bottom; //边界 

void gotoxy(int x,int y)  //光标移动到(x,y)位置
{
    HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
    COORD pos;
    pos.X = x;
    pos.Y = y;
    SetConsoleCursorPosition(handle,pos);
}

void HideCursor() // 用于隐藏光标
{
 CONSOLE_CURSOR_INFO cursor_info = {1, 0};  // 第二个值为0表示隐藏光标
 SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);
}
void startup() // 数据初始化
{
 x = 1;
 y = 5;
 velocity_x = 1;   //速度方向
 velocity_y = 1;
 left = 0;
 right = 30;
 top = 0;
 bottom = 15;

 HideCursor();  // 隐藏光标
}

void show()  // 显示画面
{

 int i,j;
 for (i=0;i<=bottom;i++)
 {
  for (j=0;j<=right;j++)
  {

   if((i==x) && (j==y))
    {
     printf("o");    //打印小球
    }
   else if ((i==0)||(i==bottom)||(j==0)||(j==right))  //打印边界
    {
     printf("#");
    }
   else printf(" ");
  }
  printf("\n");
 }
}
void automation()  // 与用户输入无关的更新
{
 x = x + velocity_x;
 y = y + velocity_y;
 if ((x==top)||(x==bottom))
 {
  velocity_x = -velocity_x;
  printf("\a");
 }

 else if ((y==left)||(y==right))
 {
  velocity_y = -velocity_y;
  printf("\a");
 }

 Sleep(100);  //调低小球速度
}
int main()
{
 system("color 2f");  //改变控制台颜色
 startup();     // 数据初始化
 while (1)     //  游戏循环执行
 {
  gotoxy(0,0);    // 清屏
  show();     // 显示画面
  automation();    // 与用户输入无关的更新
 }
 return 0;
}

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

(0)

相关推荐

  • C语言实现反弹球游戏

    C语言小游戏--反弹球(简单的图形化界面),供大家参考,具体内容如下 1.环境准备和安装 安装Visual C++ 6.0. 去Easy X官网下载Easy X安装包. 2.Eaxy X功能的简单介绍 Easy X类似于一个库函数,其中带有许多很有用的函数. Easy x首先创建一个新的窗口进行绘图. 可以画常见点 线 多边形 可以调节颜色. 可以插入图片,音乐. 可以获取鼠标信息. 其中函数的具体使用可以看安装包中带有的帮助文件 3.反弹球游戏主函数框架 int main (void) { s

  • C语言实现简单弹球游戏

    电视机待机的屏幕上的弹球,怎么实现? 今天文章就跟大家分享下C语言实现简单弹球游戏的具体代码,供大家参考,具体内容如下 #include <iostream> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #include <math.h> #include <windows.h> //#include <sy

  • C语言实现反弹球小游戏

    本文为大家分享了C语言反弹球游戏的具体代码,供大家参考,具体内容如下 这是利用函数写的C语言小游戏,用来检验自己的学习成果 反弹球的实现主要有几个子函数组成 问题也在于如何实现小球的下落,以及碰撞得分等情况 #include<stdio.h> #include<windows.h> #include<conio.h> //定义全局变量 int high,width; //游戏边界 int ball_x,ball_y; //小球位置 int ball_vx,ball_vy

  • 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

  • Python实现的弹球小游戏示例

    本文实例讲述了Python实现的弹球小游戏.分享给大家供大家参考,具体如下: 弹球 1. Ball 类 draw负责移动Ball 碰撞检测,反弹,Ball检测Paddle 2.Paddle类 draw负责移动Paddle 碰撞检测,确定能不能继续 监听键盘事件 3.主循环 绘制Ball和Paddle update sleep 代码 from Tkinter import * import random import time class Ball: def __init__(self, canv

  • Python基于Tkinter模块实现的弹球小游戏

    本文实例讲述了Python基于Tkinter模块实现的弹球小游戏.分享给大家供大家参考,具体如下: #!usr/bin/python #-*- coding:utf-8 -*- from Tkinter import * import Tkinter import random import time #创建小球的类 class Ball: def __init__(self,canvas,paddle,color): #参数:画布,球拍和颜色 self.canvas = canvas self

  • python3实现弹弹球小游戏

    本文实例为大家分享了python3实现弹弹球小游戏的具体代码,供大家参考,具体内容如下 from tkinter import * from tkinter import messagebox import random import time from PIL import Image, ImageTk import sys class Game: def __init__(self): self.tk = Tk() self.times = 0 sw = self.tk.winfo_scre

  • python运用pygame库实现双人弹球小游戏

    使用python pygame库实现一个双人弹球小游戏,两人分别控制一个左右移动的挡板用来拦截小球,小球会在两板间不停弹跳,拦截失败的一方输掉游戏,规则类似于简化版的乒乓球. 因为是第一次用pygame写python小游戏并且只用了两三个小时,所以有些粗糙,部分方面有些bug,比如板子可以移动出屏幕外,游戏结束后的提示显示不全. 但是关键部分如小球的移动和基本功能等,还算比较完善. 代码如下: 运行环境为python 3.7,需要安装pygame库 import pygame,sys,time,

  • js实现带积分弹球小游戏

    本文实例为大家分享了js实现带积分的弹球小游戏的具体代码,供大家参考,具体内容如下 注:如果小球与底部方块的角碰撞,积分可能有些许bug <style> #box { width: 400px; height: 400px; border: 1px solid #000000; margin: 50px auto; position: relative; } #ball { height: 60px; width: 60px; border-radius: 50%; background-co

  • Python实现弹球小游戏

    本文主要给大家分享一个实战项目,通过python代码写一款我们儿时大多数人玩过的游戏---小弹球游戏.只不过当时,我们是在游戏机上玩,现在我们通过运行代码来玩,看看大家是否有不一样的体验,是否可以重温当年的乐趣呢! 整个游戏实现比较简单,只需在安装python的电脑上即可运行,玩游戏,通过键盘键控制弹球挡板的移动即可.原理不多说,且让我们去看看吧. 1.代码运行后,游戏界面如下所示: 2.游戏过程中,界面如下所示: 3.游戏结束后,界面如下所示: 游戏实现部分源码如下: def main():

  • java实现弹球小游戏

    GUI实现弹球小游戏,供大家参考,具体内容如下 先看一下游戏效果图. 一个简单的Demo.也比较简单,新手试着做一做完善改进. 源代码 import Com.Style.FontStyle; import javax.swing.*; import java.awt.*; import java.awt.event.*; /** * @Author: 冀十三 * @DescIption: 弹球小游戏 * @Date:2021--06--10--17:08 */ public class Demo

  • JS实现简单打砖块弹球小游戏

    本文实例为大家分享了JS实现打砖块弹球小游戏的具体代码,供大家参考,具体内容如下 使用原生JS写的,还有一点瑕疵.代码直接复制到html就能使用 速度随机的 因为设涉及横向和纵向速度,所以显示的小球速度值是他们的和速度(立方和开根号). 按回车或者在滑块上单机左键开始游戏.鼠标滑动或者键盘A(左)或者D(右)控制滑块方向接小球. 这个小demo的意义主要为了锻炼逻辑能力: <!DOCTYPE html> <html> <head> <meta charset=&q

  • jQuery实现弹弹球小游戏

    本文实例为大家分享了jQuery实现弹弹球小游戏的具体代码,供大家参考,具体内容如下 效果展示: CSS样式: #box { width: 600px; height: 650px; border: 5px solid rgb(245, 164, 96); position: relative; left: 500px; top: 50px; background: -webkit-gradient(linear, 0 0, 0 bottom, from(#ffffff),to(rgba(0,

随机推荐