打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
别碰白块(游戏笔记)3

小球和方块的碰撞判断和方块的随机速度、随机高度。

#include<graphics.h>

#include<conio.h>

#include<stdio.h>

int main()

{

int width, height;  // 游戏画面大小 

width = 600;  // 宽

height = 400; // 高

initgraph(width,height); // 重建一个画布

float ball_x,ball_y,radius; //  圆心坐标 半径

float ball_vy,gravity; //y方向速度,重力加速度

radius = 20;

ball_x = width/4;  //  小球x 坐标

ball_y = height-radius;  //  小球y坐标

ball_vy = 0;     // 初始y方向速度为0

gravity = 0.6; // 重力加速度

float rect_left_x,rect_top_y,rect_width,rect_height;

float rect_vx;

rect_height = 100;

rect_width = 20;

rect_left_x = width*3/4;

rect_top_y = height - rect_height;

rect_vx = -3;

while (1)

{

if(kbhit())  // 当按键时

{

char input = getch();  //获得字符

if (input==' ') //当按下空格键时

{

ball_vy = -16; // 给小球一个向上的加速度

}

}

ball_vy = ball_vy + gravity;    // 根据重力速度更新小球y方向速度

ball_y = ball_y + ball_vy;    //  根据小球y方向速度更新其y坐标 

if (ball_y>=height-radius)  // 如果小球落到地面上

{

ball_y = 0;    //  速度为0

ball_y = height-radius; // 规范其y坐标,避免落到地面上

}

rect_left_x = rect_left_x + rect_vx; // 方块往左运动

if (rect_left_x<=0)    // 如果方块跑到最左边

{

rect_left_x=width;  // 在最右边重新出现

rect_height = rand() % int (height/4)+height/4; // 设置方块随机高度

rect_vx = rand()/float(RAND_MAX)*4-7; // 设置方块随机速度

}

if ((rect_left_x<=ball_x+radius)

&&(rect_left_x+rect_width>=ball_x-radius) 

&& (height-rect_height<=ball_y+radius))

{

Sleep(100);

}

/* (rect_left_x<=ball_x+radius) //  方块最左边和小球最右边接触

(rect_left_x+rect_width>=ball_x-radius) // 方块最右边和小球最左边接触

(height-rect_height<=ball_y+radius) //  方块最上边边和小球最下边接触 */

cleardevice();  // 清空画面

fillrectangle(rect_left_x,height - rect_height,rect_left_x+rect_width,height); // 绘制方块

fillcircle(ball_x,ball_y,radius); // 绘制小球

Sleep(10); // 暂停10毫秒

}

_getch();  // 等待按键

closegraph();  // 关闭窗口

return 0;

}

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
html5弹跳球示例代码
css3 绘制苹果图标
高级动画
新手入门『五』使用结构体, 让多个图形同时运动 – Easy Graphics Engine
《每周一点canvas动画》——圆周运动
as3 来回(上下)移动
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服