【c语言】小程序游戏——飞机游戏(三)

                                                                   接下来,我们需要在进行以下操作:

                                                                           1.在程序里面添加敌机

                                                                           2.为敌机添加基本属性

————————————————————————————————————————

                                                                        NO.1  在程序里面添加敌机

                                                         国际惯例,我们需要对敌机的位置设置一个初始值

int enemy_x = 0;
int enemy_y = weight/2;

       其中敌机的Y轴坐标根据之前的博客设定为weight的一半,当然,你也可以自己随意设定任何位置

                                                         初始化之后,我们就可以在把敌机显示在窗口上


   for(int i=0;i

                                                         编译结果可以看出,我们的敌机“O”出现在飞机的正上方

                           【c语言】小程序游戏——飞机游戏(三)_第1张图片

                                                              第一步非常地简单,我们很快就把敌机给显示出来了

—————————————————————————————————————————————————————

        然而,简单地把敌机显示出来并不能为我们带来游戏的体验,我们还需要在激光打中敌机时,我们的敌机需要消失,才能显示出这个游戏的意义

—————————————————————————————————————————————————————

                                                                            No.2 为敌机添加基本属性

Step1:敌机消失机制

           我们可以设定为,当激光的坐标位置和敌机的坐标位置恰好相等时,敌机和激光都置于窗口坐标轴外

【c语言】小程序游戏——飞机游戏(三)_第2张图片

                                             根据这种设想,我们可以添加以下代码,并实验是否可行

if((bullet_x == enemy_x) && (bullet_y == enemy_y))
	{
		enemy_x = enemy_y = -1;
		bullet_x = bullet_y = -1;
	}

      编译结果可知,当激光发射到敌机位置时,敌机和激光都消失了,敌机初步设定完成

                          【c语言】小程序游戏——飞机游戏(三)_第3张图片

Step2:敌机随机生成

             当敌机被消灭时,我们还需要不断地补充敌机,才能让游戏继续下去

     这时我们可以使用随机函数rand()来让敌机的位置随机确定,使得根据游戏性

     但如果我们在使用随机函数时,之前确定的位置便不能再用,所以,我们对激光消灭敌机时的位置进行重新调整

	if((bullet_x == enemy_x) && (bullet_y == enemy_y))
	{
		enemy_x = 0;
		enemy_y = rand() % weight;
		bullet_x = bullet_y = -1;
	}

  实验结果可知,当敌机被消灭时,程序会随机在某个位置再次生成敌机,以确保游戏性

                        【c语言】小程序游戏——飞机游戏(三)_第4张图片

Step3:敌机下落

             如果敌机只是简单地固定于某个位置时,我们的难度将不是很大,所以,我们需要给敌机添加一个下落的属性,使得游戏难度增加

            而在设定下落时,我们需要知道,当敌机下落到超出游戏窗口范围时,我们应该怎么办

            在这里,我们可以设定:当敌机超出窗口范围时,敌机位置重新恢复到初始化状态,程序再次生成新的敌机

              【c语言】小程序游戏——飞机游戏(三)_第5张图片

              所以应当添加以下代码

if(enemy_x > height)
	{
		enemy_x = 0;
		enemy_y = rand() % weight;
	}
	else
	{
		enemy_x ++;
	}

            编译结果可以看到,效果和我们想象中的差不多,但是有点不一样:下落速度过快

                           【c语言】小程序游戏——飞机游戏(三)_第6张图片

                                    这样的结果会让飞机还没到达规定的位置,敌机就已经下落出窗口

                                                          为此,我们还需要对敌机的下落速度进行限制

	if(enemy_x > height)
	{
		enemy_x = 0;
		enemy_y = rand() % weight;
	}
	else
	{

		 static int speed = 0;

			if(speed < 7)
				speed ++ ;

			if(speed == 7)
			{
				enemy_x ++;
				speed = 0;
			}	
	}

                                                              从编译效果,敌机下落速度有明显的降低

————————————————————————————————————————————————————

至此,我们的小程序飞机游戏也就基本完成,但程序仍有很多需要改进的地方

比如  敌机碰到飞机后,需要有些什么样的反应?

         在击落敌机后,是否需要显示分数和时间?

         是否可以根据关卡来设置不同的难度?

         ............................................................

而更多的问题,仍需要在以后的时间里继续完善,使得一款完美的游戏真正地诞生于自己手里

你可能感兴趣的:(c语言,编程语言)