C语言游戏开发

1.1 弹跳的小球

1.1.1 显示静止的小球

代码为:

#include <stdio.h>

int main(void)
{
int i,j;
int x = 5; //x表示纵坐标
int y = 10; //y表示横坐标

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

return 0;
}

结果为:

C语言游戏开发——1.1 弹跳的小球_ci


1.1.2 小球下落

代码为:

#include <stdio.h>
#include <stdlib.h> //包含清屏函数system("cls")

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

return 0;
}

结果为: 小球直线动态下落

1.1.3上下弹跳的小球

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int i,j;
int x = 5;
int y = 10;

int height = 20;
int velocity = 1; //velocity用来记录速度

while(1)
{
x = x + velocity; //小球的新位置x = 旧位置x + 速度velocity
system("cls"); //清屏函数

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

//当小球到达上、下边界时改变方向,即改变velocity的正负
if(x == height)
velocity = -velocity;
if(x == 0)
velocity = -velocity;
}

return 0;
}

结果为:小球o上下来回移动

1.1.4斜着弹跳的小球

#include <stdio.h>
#include <stdlib.h>
#include <windows.h> //通过使用Sleep函数控制小球的弹跳速度

int main(void)
{
int i,j;
int x = 0;
int y = 5;

int velocity_x = 1; //控制x方向的速度变量
int velocity_y = 1; //控制y方向的速度变量
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(50); //在输出图形后等待50ms

//velocity_x碰到上、下边界后改变正负号
if((x == top)||(x == bottom))
velocity_x = -velocity_x;

//velocity_y碰到左、右边界后改变正负号
if((y == left)||(y==right))
velocity_y = -velocity_y;
}

return 0;
}

结果为:小球在规定的区域内来回弹跳