当前位置: 首页 > news >正文

做网站来钱快免费b站推广网站在线

做网站来钱快,免费b站推广网站在线,运营策划,博山做网站公司实现弹球小游戏 一.实现弹球小游戏:1.初始化布:2.初始化一个球的信息:3.球的移动和碰撞反弹4.底边挡板的绘制和移动碰撞重置数据。 二.整体代码: 一.实现弹球小游戏: 1.初始化布: int main() {initgraph(800, 600);setorigin(40…

实现弹球小游戏

  • 一.实现弹球小游戏:
    • 1.初始化布:
    • 2.初始化一个球的信息:
    • 3.球的移动和碰撞反弹
    • 4.底边挡板的绘制和移动碰撞重置数据。
  • 二.整体代码:

一.实现弹球小游戏:

1.初始化布:

int main()
{initgraph(800, 600);setorigin(400, 300);setaspectratio(1, -1);setbkcolor(RGB(188, 227, 245));cleardevice();getchar();closegraph();
}

画面效果:
请添加图片描述

2.初始化一个球的信息:

1.球的中心点坐标,球的半径,
2.球的实际速度,水平竖直的分量速度。
3.球的颜色。
4.定义一个结构体去保存这些数值。

#define radius 30typedef struct ball {double x, y;double v, vx, vy;int radius;COLORREF colour;
}Ba;

请添加图片描述

//初始化球:
void InitBall(Ba* ball)
{//在一个范围内随机生成一个球,数值全部都是随机的ball->x = ((rand() % 301) - 150);//[-150,150]ball->y = ((rand() % 201) - 100);//生成随机速度ball->v = (rand() % 6)+3;//[3,8];//生成随机的角度:int thead = rand() % 360;//定义水平竖直的速度:ball->vx = ball->v *cos((double)thead);ball->vy = ball->v *sin((double)thead);//初始化颜色;ball->colour = GREEN;
}

3.球的移动和碰撞反弹

请添加图片描述

//球的移动和碰撞反弹
void CrashBall(Ba* ball)
{while (1){cleardevice();//设置颜色绘制球;setfillcolor(ball->colour);fillcircle(ball->x, ball->y,radius);Sleep(40);//球的移动(ball->x) += (ball->vx);(ball->y) += (ball->vy);//判断球是否到墙壁;//不考虑底边是否存在挡板的情况;if ((ball->x >= 400 - radius) || (ball->x <= -400 + radius)){ball->vx = (-(ball->vx));}if ((ball->y >= 300 - radius) || (ball->y <= -300 + radius)){ball->vy = (-(ball->vy));}}
}

4.底边挡板的绘制和移动碰撞重置数据。

请添加图片描述

void CrashBall(Ba* ball)
{int left, top, right, bottom;left = -100, top = -270;right = 100, bottom = -300;while (1){cleardevice();//设置颜色绘制球;setfillcolor(ball->colour);fillcircle(ball->x, ball->y,radius);//绘制挡板setfillcolor(RGB(113, 187, 234));//挡板不可以出界fillrectangle(left, top, right, bottom);Sleep(40);//球的移动(ball->x) += (ball->vx);(ball->y) += (ball->vy);//控制挡板移动if (_kbhit()){char ch = _getch();switch (ch){case 'a':case 'A':if (left < -400)break;left -= 5;right -= 5;break;case 'd':case 'D':if (right > 400)break;left += 5;right += 5;break;}}//判断球是否到墙壁;//不考虑底边是否存在挡板的情况;if ((ball->x >= 400 - radius) || (ball->x <= -400 + radius)){ball->vx = (-(ball->vx));}if ((ball->y >= 300 - radius)){ball->vy = (-(ball->vy));}//撞到挡板if ((ball->x >= left) && (ball->x <= right)){if (ball->y <= -240)ball->vy = (-(ball->vy));}//判断出界if ((ball->x < left) || (ball->x > right)){if (ball->y < -300){InitBall(ball);left = -100, top = -270;right = 100, bottom = -300;}}}
}

二.整体代码:

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>
#include<easyx.h>
#include<conio.h>
#include<time.h>
#include<math.h>
#include<stdbool.h>#define radius 30
#define move 10typedef struct ball {double x, y;double v, vx, vy;COLORREF colour;
}Ba;//初始化球:
void InitBall(Ba* ball)
{//在一个范围内随机生成一个球,数值全部都是随机的ball->x = ((rand() % 301) - 150);//[-150,150]ball->y = ((rand() % 201) - 100);//生成随机速度ball->v = (rand() % 6) + 5;//[5,11];//生成随机的角度:int thead = rand() % 360;//定义水平竖直的速度:ball->vx = (ball->v) * cos((double)thead);ball->vy = (ball->v) * sin((double)thead);//初始化颜色;ball->colour = GREEN;
}//球的移动和碰撞反弹void CrashBall(Ba* ball)
{int left, top, right, bottom;left = -100, top = -270;right = 100, bottom = -300;while (1){cleardevice();//设置颜色绘制球;setfillcolor(ball->colour);fillcircle(ball->x, ball->y,radius);//绘制挡板setfillcolor(RGB(113, 187, 234));//挡板不可以出界fillrectangle(left, top, right, bottom);Sleep(40);//球的移动(ball->x) += (ball->vx);(ball->y) += (ball->vy);//控制挡板移动if (_kbhit()){char ch = _getch();switch (ch){case 'a':case 'A':if (left < -400)break;left -= 5;right -= 5;break;case 'd':case 'D':if (right > 400)break;left += 5;right += 5;break;}}//判断球是否到墙壁;//不考虑底边是否存在挡板的情况;if ((ball->x >= 400 - radius) || (ball->x <= -400 + radius)){ball->vx = (-(ball->vx));}if ((ball->y >= 300 - radius)){ball->vy = (-(ball->vy));}//撞到挡板if ((ball->x >= left) && (ball->x <= right)){if (ball->y <= -240)ball->vy = (-(ball->vy));}//判断出界if ((ball->x < left) || (ball->x > right)){if (ball->y < -300){InitBall(ball);left = -100, top = -270;right = 100, bottom = -300;}}}
}int main()
{initgraph(800, 600);setorigin(400, 300);setaspectratio(1, -1);setbkcolor(RGB(188, 227, 245));cleardevice();//获取当前时间作为随机数种子;srand((unsigned int)time(NULL));//定义变量Ba ball;//初始化球:InitBall(&ball);//球的移动和碰撞反弹CrashBall(&ball);getchar();closegraph();
}
http://www.hkea.cn/news/592671/

相关文章:

  • 文章列表页wordpress宁波seo资源
  • 获取网站访客qq 原理百度投诉中心人工电话
  • 企业网站制作查询百度电话怎么转人工
  • 杭州专业网站建设怎样创建网站
  • 网站建设报价表格式淘宝关键词优化技巧
  • 高端网站建设系统百度网盘登录入口官网
  • ps做网站顶部江苏网络推广公司
  • 源码做网站手机网站百度关键词排名
  • 网站关键词分隔网站链接提交
  • 福永营销型网站多少钱中国最新消息今天
  • 做网站4000-262-263网站排名优化软件有哪些
  • 网站双链接怎么做网络舆情监测平台
  • 企业网站建设制作百度网盘下载app
  • asp做一个简单网站网络营销就是seo正确吗
  • 移动wap站点公司网站设计图
  • 网站策划建设seo搜索排名影响因素主要有
  • 大型商业广场网站建设互联网推广方案怎么写
  • p2vr做的网站上传网络广告策划书范文
  • 2022年大连黄页优化搜索引擎营销
  • 宁波有几个区昭通网站seo
  • 建设企业网站方案网站优化软件哪个好
  • 郑州做网站要搜索引擎最新排名
  • wordpress建好站了打不开首页成都关键词优化排名
  • 京东网站开发需求如何做谷歌优化
  • 微信app开发诊断网站seo现状的方法
  • 做旅行网站网站seo优化多少钱
  • 上海专业网站建设咨询网络销售怎么样
  • 奶茶网页设计图片湖南seo网站多少钱
  • 家里电脑做网站服务器如何建立网址
  • 临西做网站哪里便宜seo专业培训课程