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


C++ BitStream::ResetWritePointer方法代码示例

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


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

示例1: UpdateEnemy

void ServerApp::UpdateEnemy(double dt)
{
	for (vector<ServerEnemy*>::iterator it = enemyList.begin(); it != enemyList.end(); ++it)
	{
		ServerEnemy* e = *it;
		if (e->active)
		{
			// Update active enemy
			Vector2 newPos = Vector2::MoveToPoint(Vector2(e->x_, e->y_), Vector2(s_screen_width * 0.5f, s_screen_height * 0.5f), e->speed * dt);
			e->x_ = newPos.x;
			e->y_ = newPos.y;

			// Send data to everyone only if reset is required
			if (newPos == Vector2(s_screen_width * 0.5f, s_screen_height * 0.5f))
			{
				// Send final position before resetting
				RakNet::BitStream bs;
				bs.Write((unsigned char)ID_UPDATE_ENEMY);
				bs.Write(e->id);
				bs.Write(e->x_);
				bs.Write(e->y_);
				rakpeer_->Send(&bs, HIGH_PRIORITY, RELIABLE_ORDERED, 0, UNASSIGNED_SYSTEM_ADDRESS, true);

				// Send reset data to everyone
				bs.ResetWritePointer();
				bs.Write((unsigned char)ID_DESTROY_ENEMY);
				bs.Write(e->id);
				rakpeer_->Send(&bs, HIGH_PRIORITY, RELIABLE_ORDERED, 0, UNASSIGNED_SYSTEM_ADDRESS, true);

				// Update base hp
				--base_hp;
				bs.ResetWritePointer();
				bs.Write((unsigned char)ID_UPDATE_BASE);
				bs.Write(base_hp);
				rakpeer_->Send(&bs, HIGH_PRIORITY, RELIABLE_ORDERED, 0, UNASSIGNED_SYSTEM_ADDRESS, true);

				e->Reset();
			}
		}
	}
}
开发者ID:NothingMuch123,项目名称:Multiplayer-Assignment-2,代码行数:41,代码来源:ServerApp.cpp

示例2: Update


//.........这里部分代码省略.........
			if (reset)
			{
				DestroyProjectile(p);
				bs.Write((unsigned char)ID_DESTROY_PROJECTILE);
				bs.Write(p->GetID());
				rakpeer_->Send(&bs, HIGH_PRIORITY, RELIABLE_ORDERED, 0, UNASSIGNED_SYSTEM_ADDRESS, true);
			}
			else
			{
				for (vector<Enemy*>::iterator it2 = enemyList.begin(); it2 != enemyList.end(); ++it2)
				{
					Enemy* e = *it2;
					if (e->GetActive())
					{
						bool collision = p->CollideWith(e);
						if (collision)
						{
							int newHP = e->Injure(p->GetDamage());
							if (newHP <= 0)
							{
								RakNet::BitStream bs;
								// Add score to player
								p->GetOwner()->AddScore(100);

								bs.Write((unsigned char)ID_UPDATE_SCORE);
								bs.Write(p->GetOwner()->GetID());
								bs.Write(p->GetOwner()->GetScore());
								rakpeer_->Send(&bs, HIGH_PRIORITY, RELIABLE_ORDERED, 0, UNASSIGNED_SYSTEM_ADDRESS, true);

								// Destroy enemy
								DestroyEnemy(e);

								// Send to server to destroy enemy
								bs.ResetWritePointer();
								bs.Write((unsigned char)ID_DESTROY_ENEMY);
								bs.Write(e->GetID());
								rakpeer_->Send(&bs, HIGH_PRIORITY, RELIABLE_ORDERED, 0, UNASSIGNED_SYSTEM_ADDRESS, true);
							}
							else
							{
								// Send to server to injure enemy
								RakNet::BitStream bs;
								bs.ResetWritePointer();
								bs.Write((unsigned char)ID_INJURE_ENEMY);
								bs.Write(e->GetID());
								bs.Write(e->GetHP());
								rakpeer_->Send(&bs, HIGH_PRIORITY, RELIABLE, 0, UNASSIGNED_SYSTEM_ADDRESS, true);
							}

							// Reset projectile
							DestroyProjectile(p);
							bs.ResetWritePointer();
							bs.Write((unsigned char)ID_DESTROY_PROJECTILE);
							bs.Write(p->GetID());
							rakpeer_->Send(&bs, HIGH_PRIORITY, RELIABLE, 0, UNASSIGNED_SYSTEM_ADDRESS, true);
						}
					}
				}
				/*int max = projectileUpdateList.size();
				int count = 0;
				for (vector<Projectile*>::iterator it2 = projectileUpdateList.begin(); it2 != projectileUpdateList.end(); ++it2)
				{
					Projectile* p2 = *it2;
					if (p == p2)
					{
						break;
开发者ID:NothingMuch123,项目名称:Multiplayer-Assignment-2,代码行数:67,代码来源:Application.cpp


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