⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cargo.cpp

📁 打飞机的过关游戏(linux)
💻 CPP
字号:
#include "cargo.h"

void initCargo()
{
	for (int i = 0 ; i < MAX_CARGO ; i++)
	{
		cargo[i].active = 0;
		cargo[i].owner = NULL;
	}
}

/*
* I think you all know what this does by now! ;)
*/
int getCargo()
{
	for (int i = 0 ; i < MAX_CARGO ; i++)
	{
		if (cargo[i].active == 0)
			return i;
	}

	return -1;
}

object *addCargo(object *owner, int cargoType)
{
	int index = getCargo();

	if (index == -1)
		return NULL;

	cargo[index].active = 1;
	cargo[index].owner = owner;
	cargo[index].x = owner->x;
	cargo[index].y = owner->y;
	cargo[index].dx = 0;
	cargo[index].dy = 0;
	cargo[index].collectType = cargoType;
	cargo[index].image[0] = graphics.shape[32];
	if (cargoType == P_PHOEBE)
		cargo[index].image[0] = graphics.shipShape[20];

	return &cargo[index];
}

void becomeCollectable(int i)
{
	if (cargo[i].collectType != P_PHOEBE)
	{
		addCollectable(cargo[i].x, cargo[i].y, cargo[i].collectType, 1, 600);
	}
	else
	{
		enemy[FR_PHOEBE].active = 1;
		enemy[FR_PHOEBE].x = cargo[i].x;
		enemy[FR_PHOEBE].y = cargo[i].y;
		setRadioMessage(FACE_PHOEBE, "Thanks!! Watch out, WEAPCO! Phoebe's loose and she's ANGRY!!!", 1);
	}

	cargo[i].active = 0;
}

void doCargo()
{
	float dx, dy, chainX, chainY;

	for (int i = 0 ; i < MAX_CARGO ; i++)
	{
		if (cargo[i].active)
		{
			if (!cargo[i].owner->active)
			{
				becomeCollectable(i);
				continue;
			}

			graphics.blit(cargo[i].image[0], (int)cargo[i].x, (int)cargo[i].y);

			cargo[i].x += engine.ssx;
			cargo[i].y += engine.ssy;

			Math::limitFloat(&cargo[i].x, cargo[i].owner->x - 50, cargo[i].owner->x + 50);
			Math::limitFloat(&cargo[i].y, cargo[i].owner->y - 50, cargo[i].owner->y + 50);

			dx = (cargo[i].x - cargo[i].owner->x) / 10;
			dy = (cargo[i].y - cargo[i].owner->y) / 10;
			chainX = cargo[i].x - cargo[i].dx;
			chainY = cargo[i].y - cargo[i].dy;

			// draw the chain link line
			for (int j = 0 ; j < 10 ; j++)
			{
				graphics.blit(graphics.shape[30], (int)chainX, (int)chainY);
				chainX -= dx;
				chainY -= dy;
			}
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -