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


C++ World::GetPeerPlayer方法代码示例

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


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

示例1: Tick


//.........这里部分代码省略.........
					plume->type = 4;
					/*plume->xv = (rand() % 17) - 8;
					plume->yv = (rand() % 17) - 8;
					plume->xv = (xn * abs(plume->xv)) + (rand() % 33) - 16;
					plume->yv = (yn * abs(plume->yv)) + (rand() % 33) - 16;*/
					float angle = (i / float(numplumes)) * (2 * 3.14);
					angle += anglen;
					plume->xv = (sin(angle)) * 15;
					plume->yv = (cos(angle)) * 15;
					if(xn || yn){
						plume->xv = (xn * abs(plume->xv)) + (rand() % 17) - 8;
						plume->yv = (yn * abs(plume->yv)) + (rand() % 17) - 8;
					}
					plume->SetPosition(x, y);
					
					Plume * plume2 = (Plume *)world.CreateObject(ObjectTypes::PLUME);
					if(plume2){
						plume2->type = 4;
						plume2->xv = plume->xv + (rand() % 7) - 3;
						plume2->yv = plume->yv + (rand() % 7) - 3;
						plume2->SetPosition(x, y);
					}
				}
			}
			std::vector<Uint8> types;
			types.push_back(ObjectTypes::PLAYER);
			types.push_back(ObjectTypes::GUARD);
			types.push_back(ObjectTypes::ROBOT);
			types.push_back(ObjectTypes::CIVILIAN);
			types.push_back(ObjectTypes::FIXEDCANNON);
			types.push_back(ObjectTypes::WALLDEFENSE);
			types.push_back(ObjectTypes::TECHSTATION);
			Object * owner = world.GetObjectFromId(ownerid);
			Uint16 teamid = 0;
			bool issecurity = false;
			if(owner){
				switch(owner->type){
					case ObjectTypes::PLAYER:{
						Player * player = static_cast<Player *>(owner);
						Team * team = player->GetTeam(world);
						if(team){
							teamid = team->id;
						}
					}break;
					case ObjectTypes::ROBOT:{
						Robot * robot = static_cast<Robot *>(owner);
						teamid = robot->virusplanter;
						issecurity = world.IsSecurity(*robot);
					}break;
					case ObjectTypes::GUARD:{
						issecurity = true;
					}break;
				}
			}
			std::vector<Object *> objects = world.TestAABB(x - 30, y - 30, x + 30, y + 30, types, ownerid, teamid);
			for(std::vector<Object *>::iterator it = objects.begin(); it != objects.end(); it++){
				if(!object || (object && (*it)->id != object->id)){
					if(!issecurity || (issecurity && !world.IsSecurity(*(*it)))){ // prevents robots/rocket guards from doing slash damage to other security
						Object damageprojectile(ObjectTypes::ROCKETPROJECTILE);
						damageprojectile.healthdamage = healthdamage;
						damageprojectile.shielddamage = shielddamage;
						damageprojectile.ownerid = ownerid;
						(*it)->HandleHit(world, 50, 50, damageprojectile);
					}
				}
			}
			xv = 0;
			yv = 0;
			res_bank = 0xFF;
			if(soundchannel){
				Audio::GetInstance().Stop(soundchannel, 100);
			}
			EmitSound(world, world.resources.soundbank["seekexp1.wav"], 128);
		}
		for(int i = 0; i < 2; i++){
			int xv2 = (signed(oldx) - x) * (1.25 * i);
			int yv2 = (signed(oldy) - y) * (1.25 * i);
			Plume * plume = (Plume *)world.CreateObject(ObjectTypes::PLUME);
			if(plume){
				plume->type = 3;
				plume->xv = rand() % 7 - 3;
				plume->yv = rand() % 7 - 3;
				plume->SetPosition(x + xv2, y + yv2);
			}
		}
	}
	if(state_i < 11 || (state_i >= 11 && xv == 0 && yv == 0)){
		state_i++;
	}
	if(state_i >= 25){
		world.MarkDestroyObject(id);
	}else{
		Player * localplayer = world.GetPeerPlayer(world.localpeerid);
		if(localplayer && ownerid == localplayer->id){
			//if(!world.systemcameraactive[0]){
				world.SetSystemCamera(0, id, 0, 20);
			//}
		}
	}
}
开发者ID:zsilencer,项目名称:zSILENCER,代码行数:101,代码来源:rocketprojectile.cpp


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