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

📄 wreckprojectile.cpp

📁 这是整套横扫千军3D版游戏的源码
💻 CPP
字号:
// WreckProjectile.cpp: implementation of the CWreckProjectile class.
//
//////////////////////////////////////////////////////////////////////

#include "StdAfx.h"
#include "Game/Camera.h"
#include "Map/Ground.h"
#include "Rendering/GL/myGL.h"
#include "Rendering/GL/VertexArray.h"
#include "Sim/Projectiles/ProjectileHandler.h"
#include "SmokeProjectile.h"
#include "WreckProjectile.h"
#include "mmgr.h"

CR_BIND_DERIVED(CWreckProjectile, CProjectile, (float3(0,0,0),float3(0,0,0),0,0));

CR_REG_METADATA(CWreckProjectile,
				CR_RESERVED(8)
				);

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CWreckProjectile::CWreckProjectile(float3 pos,float3 speed,float temperature,CUnit* owner)
: CProjectile(pos,speed,owner, false)
{
	checkCol=false;
	drawRadius=2;
}

CWreckProjectile::~CWreckProjectile()
{

}

void CWreckProjectile::Update()
{
	speed.y+=gs->gravity;
	speed.x*=0.994f;
	speed.z*=0.994f;
	if(speed.y>0)
		speed.y*=0.998f;
	pos+=speed;

	if(!(gs->frameNum&(ph->particleSaturation<0.5f?1:3))){
		CSmokeProjectile* hp=SAFE_NEW CSmokeProjectile(pos,ZeroVector,50,4,0.3f,owner,0.5f);
		hp->size+=0.1f;
	}
	if(pos.y+0.3f<ground->GetApproximateHeight(pos.x,pos.z))
		deleteMe=true;
}

void CWreckProjectile::Draw(void)
{
	inArray=true;
	unsigned char col[4];
	col[0]=(unsigned char) (0.15f*200);
	col[1]=(unsigned char) (0.1f*200);
	col[2]=(unsigned char) (0.05f*200);
	col[3]=200;

	float3 interPos=pos+speed*gu->timeOffset;
	va->AddVertexTC(interPos-camera->right*drawRadius-camera->up*drawRadius,ph->wrecktex.xstart,ph->wrecktex.ystart,col);
	va->AddVertexTC(interPos+camera->right*drawRadius-camera->up*drawRadius,ph->wrecktex.xend,ph->wrecktex.ystart,col);
	va->AddVertexTC(interPos+camera->right*drawRadius+camera->up*drawRadius,ph->wrecktex.xend,ph->wrecktex.yend,col);
	va->AddVertexTC(interPos-camera->right*drawRadius+camera->up*drawRadius,ph->wrecktex.xstart,ph->wrecktex.yend,col);
}

⌨️ 快捷键说明

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