飞机大战(链表)

大家好,我是作者:隐匿269今天我带来的是用链表制作游戏,飞机大战(俗称:打飞机小游戏)。我会运用到图形库,没有图形库的伙伴不用着急,把打印图片的步骤省略,代码也能运行。

一、准备(大纲)

编程时,首先要做的就是整理好思路。我们要思考飞机大战的游戏规则,以及飞机的移动,敌机、子弹的创建和销毁等。总的可以分为一下几个环节。

*    1、初始化地图窗口,加载图片,飞机链表结构体的实现,变量的定义
    *    2、生成我放飞机,并移动
    *    3、发射子弹、移动、销毁
        4、敌方飞机生成、移动、销毁
        5、子弹消灭敌机
        6、敌机和我放飞机碰撞
        7、表示游戏结束
        8、计分
        9、背景音乐

通过以上的思路,我们就可以编写代码了。

二、准备(代码)

第一步,我们并不是要立刻编写,而是为以上的每一步作准备。"初始化地图窗口,加载图片"需要提前安装图形库。这点请在百度上自行搜所,我也会在后期做出一篇相关攻略。"飞机链表结构体的实现"则需要提前定义链表。

飞机大战,只有一架我放飞机,随机的敌机和子弹,因此我们创建两个链表。并提供链表及其节点的插入和销毁。

//头文件名称"Airplane.h"
#pragma once
#include <stdio.h>
#include <stdlib.h>

//头文件重复函数

//链表结构的声明和定义

//链表节点结构体的声明
typedef struct Node
{
	int x;//坐标
	int y;//坐标
	int speed;//移动速度
	struct Node*next;//指针域,用于连接下一个节点  
}Node;

//链表结构体的声明
typedef struct Linklist
{
	Node*head;//头部节点指针
	Node*end;//尾部节点指针
}LL;

//链表节点的创建函数
Node *linklist_init(int x, int y, int speed)
{
	Node*temp = (Node*)malloc(sizeof(Node));
	if (temp == NULL)
	{

		return 0;
	}
	temp->speed = speed;
	temp->x = x;
	temp->y = y;
	temp->next = NULL;
	return temp;
}

//链表节点的插入
void linklist_insert(LL*list, int x, int y, int speed)

{
	if (NULL == list)
	{
		return;
	}
	if (list->head == NULL)
	{
		list->head = list->end = linklist_init(x, y, speed);
	}
	else
	{
		list->end->next = linklist_init(x, y, speed);
		list->end =
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秘密之乡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值