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;
}
结果为:
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;
}
结果为:小球在规定的区域内来回弹跳