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

📄 bullet.cpp

📁 本人初学window网络编程时开发的第一款网络游戏
💻 CPP
字号:
#include ".\bullet.h"
extern bool CheckLimit(COORD _pos , char type , char act);
CBullet::CBullet(HANDLE _hOut)
{
	hOut=_hOut;
	m_iID=10;
	chBullet=0x2E;
	chVoid=0x20; 
}

CBullet::~CBullet(void)
{

}

void CBullet::Render()
{

	for (int i=0 ; i<vecPlayerDownBullet.size() ; i++)
	{
		WriteConsoleOutputCharacter(hOut , &chVoid , 1 , vecPlayerDownBullet[i].oldcoord , &result);
		WriteConsoleOutputCharacter(hOut , &vecPlayerDownBullet[i].chBullet , 1 , vecPlayerDownBullet[i].newcoord , &result);
		vecPlayerDownBullet[i].oldcoord.X=vecPlayerDownBullet[i].newcoord.X;
		vecPlayerDownBullet[i].oldcoord.Y=vecPlayerDownBullet[i].newcoord.Y;
	}
	for (int i=0 ; i<vecPlayerUpBullet.size() ; i++)
	{
		WriteConsoleOutputCharacter(hOut , &chVoid , 1 , vecPlayerUpBullet[i].oldcoord , &result);
		WriteConsoleOutputCharacter(hOut , &vecPlayerUpBullet[i].chBullet , 1 , vecPlayerUpBullet[i].newcoord , &result);
		vecPlayerUpBullet[i].oldcoord.X=vecPlayerUpBullet[i].newcoord.X;
		vecPlayerUpBullet[i].oldcoord.Y=vecPlayerUpBullet[i].newcoord.Y;
	}
}

void CBullet::UpData(char type)
{
    for (int i=0 ; i<vecPlayerDownBullet.size() ; i++)
    {
		vecPlayerDownBullet[i].newcoord.X+=vecPlayerDownBullet[i].iAngleX;
		vecPlayerDownBullet[i].newcoord.Y+=vecPlayerDownBullet[i].iAngleY;
    }
	for (int i=0 ; i<vecPlayerUpBullet.size() ; i++)
	{
		vecPlayerUpBullet[i].newcoord.X+=vecPlayerUpBullet[i].iAngleX;
		vecPlayerUpBullet[i].newcoord.Y+=vecPlayerUpBullet[i].iAngleY;
	}

	for (int i=0 ; i<vecPlayerDownBullet.size() ; i++)
	{
		if (CheckLimit(vecPlayerDownBullet[i].newcoord , BULLET_PLAYER_DOWN , ACT_NULL))
		{
			if (type==CLIENT_ACT)
			{
				WriteConsoleOutputCharacter(hOut , &chVoid , 1 , vecPlayerDownBullet[i].oldcoord , &result);
			}
			vecPlayerDownBullet.erase(&vecPlayerDownBullet[i]);
		} 
	}
	for (int i=0 ; i<vecPlayerUpBullet.size() ; i++)
	{
		if (CheckLimit(vecPlayerUpBullet[i].newcoord , BULLET_PLAYER_UP , ACT_NULL))
		{
			if (type==CLIENT_ACT)
			{
				WriteConsoleOutputCharacter(hOut , &chVoid , 1 , vecPlayerUpBullet[i].oldcoord , &result);
			}
			vecPlayerUpBullet.erase(&vecPlayerUpBullet[i]);
		} 
	}
}
int CBullet::Fire(CPlayer player)
{
	int iReturn;
	BULLET bullet;
	bullet.chBullet=chBullet;
	bullet.iAngleX=0;
	bullet.id=m_iID;
	iReturn=m_iID;
	bullet.newcoord=player.newcoord;
	bullet.newcoord.X++;
	if (player.m_iType==PLAYER_DOWN)
	{
		bullet.iAngleY=-1;
		vecPlayerDownBullet.push_back(bullet);
	} 
	else if(player.m_iType==PLAYER_UP)
	{
		bullet.iAngleY=1;
		vecPlayerUpBullet.push_back(bullet);
	}

	m_iID++;

	if(m_iID>5000)
	{
        m_iID=0;
	}
    return iReturn;
}

bool CBullet::DelBullet(int _id)
{
    for (int i=0 ; i<vecPlayerDownBullet.size() ; i++)
    {
		if (vecPlayerDownBullet[i].id==_id)
		{
			WriteConsoleOutputCharacter(hOut , &chVoid , 1 , vecPlayerDownBullet[i].oldcoord , &result);
			vecPlayerDownBullet.erase(&vecPlayerDownBullet[i]);
			i--;
			return true;
		}
    }
	for (int i=0 ; i<vecPlayerUpBullet.size() ; i++)
	{
		if (vecPlayerUpBullet[i].id==_id)
		{
			WriteConsoleOutputCharacter(hOut , &chVoid , 1 , vecPlayerUpBullet[i].oldcoord , &result);
			vecPlayerUpBullet.erase(&vecPlayerUpBullet[i]);
			i--;
			return true;
		}
	}
	return false;
}
//void CBullet::FireUlt(CPlane* player)
//{
//	static int iFireUltTime=0;
//    if (iFireUltTime==0)
//    {
//		if(GetAsyncKeyState(0x4B))
//		{
//			iFireUltTime=100;
//		}
//    }
//	if (iFireUltTime>99)
//	{
//		iFireUltTime++;
//	}
//	if (iFireUltTime>99 && iFireUltTime%2==0)
//	{
//		BULLET bullet1,bullet2,bullet3,bullet4,bullet5,bullet6,bullet7;
//		bullet1.newcoord.X=player->newcoord.X;
//		bullet1.oldcoord.X=player->oldcoord.X;
//		bullet1.newcoord.Y=player->newcoord.Y;
//		bullet1.oldcoord.Y=player->oldcoord.Y;
//		Sleep(2);
//		srand(time(0));
//		bullet1.cBullet=(char)GetRandom(1,128);
//		bullet1.iAngleX=-3;
//		vecBullet.push_back(bullet1);
//
//		bullet2.newcoord.X=player->newcoord.X;
//		bullet2.oldcoord.X=player->oldcoord.X;
//		bullet2.newcoord.Y=player->newcoord.Y;
//		bullet2.oldcoord.Y=player->oldcoord.Y;
//		Sleep(2);
//		srand(time(0));
//		bullet2.cBullet=(char)GetRandom(1,128);
//		bullet2.iAngleX=-2;
//		vecBullet.push_back(bullet2);
//
//		bullet3.newcoord.X=player->newcoord.X;
//		bullet3.oldcoord.X=player->oldcoord.X;
//		bullet3.newcoord.Y=player->newcoord.Y;
//		bullet3.oldcoord.Y=player->oldcoord.Y;
//		Sleep(2);
//		srand(time(0));
//		bullet3.cBullet=(char)GetRandom(1,128);
//		bullet3.iAngleX=-1;
//		vecBullet.push_back(bullet3);
//
//		bullet4.newcoord.X=player->newcoord.X;
//		bullet4.oldcoord.X=player->oldcoord.X;
//		bullet4.newcoord.Y=player->newcoord.Y;
//		bullet4.oldcoord.Y=player->oldcoord.Y;
//		Sleep(2);
//		srand(time(0));
//		bullet4.cBullet=(char)GetRandom(1,128);
//		bullet4.iAngleX=0;
//		vecBullet.push_back(bullet4);
//
//		bullet5.newcoord.X=player->newcoord.X;
//		bullet5.oldcoord.X=player->oldcoord.X;
//		bullet5.newcoord.Y=player->newcoord.Y;
//		bullet5.oldcoord.Y=player->oldcoord.Y;
//		Sleep(2);
//		srand(time(0));
//		bullet5.cBullet=(char)GetRandom(1,128);
//		bullet5.iAngleX=1;
//		vecBullet.push_back(bullet5);
//
//		bullet6.newcoord.X=player->newcoord.X;
//		bullet6.oldcoord.X=player->oldcoord.X;
//		bullet6.newcoord.Y=player->newcoord.Y;
//		bullet6.oldcoord.Y=player->oldcoord.Y;
//		Sleep(2);
//		srand(time(0));
//		bullet6.cBullet=(char)GetRandom(1,128);
//		bullet6.iAngleX=2;
//		vecBullet.push_back(bullet6);
//
//		bullet7.newcoord.X=player->newcoord.X;
//		bullet7.oldcoord.X=player->oldcoord.X;
//		bullet7.newcoord.Y=player->newcoord.Y;
//		bullet7.oldcoord.Y=player->oldcoord.Y;
//		Sleep(2);
//		srand(time(0));
//		bullet7.cBullet=(char)GetRandom(1,128);
//		bullet7.iAngleX=3;
//		vecBullet.push_back(bullet7);
//	}
//	if (iFireUltTime>118)
//	{
//		iFireUltTime=0;
//	}
//}

⌨️ 快捷键说明

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