当前位置: 首页>>代码示例>>C++>>正文


C++ Vector4D::Array方法代码示例

本文整理汇总了C++中Vector4D::Array方法的典型用法代码示例。如果您正苦于以下问题:C++ Vector4D::Array方法的具体用法?C++ Vector4D::Array怎么用?C++ Vector4D::Array使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Vector4D的用法示例。


在下文中一共展示了Vector4D::Array方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: drawSatellite

/*
		Desenare satelit
*/
int Satellite::drawSatellite(){

	
	glNormal3f(0,1,0);
	glTranslatef(posx, posy, posz);
	
	//daca nu e de tip power up
	if(bonus == false)
	{
	//daca nu explodeaza deseneaza cu culoarea obisnuita 
	if(explodes == false  )
	{
		
	glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT,color);
	glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, color);
	
	
	}
	//daca explodeaza se folosesc culorile pt explozie
	if(explodes == true)
	{
	
	glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, ambient4f1.Array());
	glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, diffuse4f1.Array());
	glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, specular4f1.Array());
	glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, shininess1);
	}
	//scalare 
	glScalef(Size-1, Size-1, Size-1);
	//rotire in jurul axelor ox si oz
	glRotatef(spin, 0, spin/2.0,0);	
	//setare tipa asteroid => icoshaedron/dodecahedron
	if(type == ICOS)glutSolidIcosahedron();
	else glutSolidDodecahedron();
	//desenare inele satelit
	glRotatef(90,1,0,0);
	glRotatef(spin, 0, spin/2.0,0);	
		glutSolidTorus(0.05,2.2,20,20);
		glutSolidTorus(0.05,2,20,20);
		glutSolidTorus(0.05,1.8,20,20);
	}
	//satelit bonus; acelasi mod de desenare ca la satelitii normali
	if(bonus == true)
	{
		
		
		if(explodes == false)
		{
		glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT,Vector4D(1,0,0,1).Array());
		glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, Vector4D(1,0,0,1).Array());
		glScalef(Size, Size, Size);
		glutSolidSphere(0.9,20,20);
		glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT,Vector4D(0,0,1,1).Array());
		glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, Vector4D(0,0,1,1).Array());
		
		glRotatef(90,1,0,0);
		glRotatef(spin, 0, spin/2.0,0);	
		glutSolidTorus(0.05,1.7,20,20);
		glutSolidTorus(0.05,1.4,20,20);
		glutSolidTorus(0.05,1.1,20,20);
		
		}
		if(explodes == true)
	{
	
	glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, ambient4f1.Array());
	glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, diffuse4f1.Array());
	glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, specular4f1.Array());
	glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, shininess1);
	glScalef(Size, Size, Size);
		glutSolidSphere(0.9,20,20);
		
		glRotatef(90,1,0,0);
		glRotatef(spin, 0, spin/2.0,0);
		glutSolidTorus(0.05,1.7,20,20);
		glutSolidTorus(0.05,1.4,20,20);
		glutSolidTorus(0.05,1.1,20,20);
		
	}
	
	}
	time += 0.01;
	//daca are loc explozia atunci nu se mai deplaseaza
	if(explodes == false)
	{
	posx += (v0 * time) * dx/7.0;
	posy += (v0 * time) * dy/7.0;
	posz += (v0 * time ) * dz/7.0;
	}
	//daca satelitul debaseste spatiul de joc se reseteaza parametri
	if(posx < 0 || posx > box ||
		posy < 0 || posy > box ||
		 posz > box){
			destroy();
			
			return 1;
	}
//.........这里部分代码省略.........
开发者ID:evelinad,项目名称:Space-Invaders,代码行数:101,代码来源:Satellite.cpp


注:本文中的Vector4D::Array方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。