小球弹跳c语言实现实验报告,C语言实现简单弹跳球游戏

本文实例为大家分享了C语言实现弹跳球游戏的具体代码,供大家参考,具体内容如下

#include

#include

int main()

{

// 球的坐标

int pos_x,pos_y;

//球坐标的变化

int x =0;

int y = 5;

// 定义一个球的速度

int velocity_x=1;

int velocity_y=1;

//定义一个球运动的范围

int top=0;

int botton=20;

int lift=0;

int right=20;

//让球循环来回的跳动

while(1)

{

//x轴的速度变化

x = x + velocity_x;

y = y +velocity_y;

//清屏,用于每次绘图,清除上一次球的位置。

system("cls");

for (pos_x=0 ; pos_x < x; pos_x ++)

{

// y轴每行画换行符。

printf("\n");

}

for ( pos_y =0; pos_y

{

// x轴进行空格即可

printf(" ");

}

//利用速度velocity来控制球移动的方向

if( x == top || x == botton) //如果球的x坐标碰到了最顶端-1,向下运动。碰到最低端20则,向上运动。

{

velocity_x =-velocity_x; //改变正负数,则为改变方向

}

if( y == lift || y == right) //如果球的x坐标碰到了最zuo端-1,向下运动。碰到最you端20则,向上运动。

{

velocity_y =-velocity_y; //改变正负数,则为改变方向

}

//每次清屏后,进行绘0。

printf("0 \n");

}

system("pause");

}

该段落为球弹跳的基本逻辑,可以进行直接粘贴复制。编译运行即可看到效果。

代码已经写好注释。

再为大家一段简单的控制台弹跳小球实现代码,感谢原作者的分享:

#include

#include

#include

#include

// 全局变量

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;

}

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值