您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ Collision函数代码示例

51自学网 2021-06-01 20:12:15
  C++
这篇教程C++ Collision函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中Collision函数的典型用法代码示例。如果您正苦于以下问题:C++ Collision函数的具体用法?C++ Collision怎么用?C++ Collision使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

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

示例1: Collision

Collision CollisionManager::collideWithMapPieceAndMovableObjects( Entity *e ){    dFloat contacts[16] = {0.0f};    dFloat normals[16] = {0.0f};    dFloat penetration[16] = {0.0f};    Collision col = Collision(false,normals,contacts,penetration);    Vector3 pos = e->getParentSceneNode()->_getFullTransform().getTrans();    Entity* ents[5];    mp->getEntitiesForCollisionFromAPosition( &pos, ents );    for( int i = 0; i < 5; i++ )    {        if( ents[i] != NULL)        {            col = cd->staicAndDynamicCollision( e, ents[i], false );            if( col.isCollided ) return col;        }    }    for(std::vector<Entity*>::const_iterator it=movableObj.begin();it!=movableObj.end(); ++it)    {        col = cd->staicAndDynamicCollision( e, *it, true);        if( col.isCollided ) return col;    }    return col;}
开发者ID:jfyne,项目名称:Black-Comrade,代码行数:28,


示例2: Collision

void CWeaponProjectile::Collision(CFeature* feature){	if(gs->randFloat()>weaponDef->fireStarter)		feature->StartFire();	Collision();}
开发者ID:genxinzou,项目名称:svn-spring-archive,代码行数:7,


示例3: mapCollision

//only to be used with map pieces where the second element is not transformedCollision CollisionDetection::staicAndDynamicCollision(Entity *e1, Entity *e2, bool dynamic){    dFloat e1Matrix[16];    dFloat e2Matrix[16];    NewtonCollision *e1Collision;    NewtonCollision *e2Collision;    std::map<Entity *,NewtonCollision *>::const_iterator iter =    		collisionsMap.find(e1);    if(iter != collisionsMap.end()) {    	e1Collision=iter->second;    } else {        cout<<"in mapCollision(e1,e2) the collision mesh for enitiy e1 could not be found in (C++)map"<< endl;        dFloat contacts[16] = {0.0f};        dFloat normals[16] = {0.0f};        dFloat penetration[16] = {0.0f};    	return Collision(false,normals,contacts,penetration);    }    iter = collisionsMap.find(e2);    if(iter != collisionsMap.end()) {    	e2Collision=iter->second;    } else {        cout<<"in mapCollision(e1,e2) collision mesh for mapEnitiy e2 could not be found in (C++)map"<<endl;        dFloat contacts[16] = {0.0f};        dFloat normals[16] = {0.0f};        dFloat penetration[16] = {0.0f};    	return Collision(false,normals,contacts,penetration);;    }    getMatrix(e1,e1Matrix, true);       //allwarys transform    getMatrix(e2,e2Matrix, dynamic);    //transfrom second entity only if not static    dFloat contacts[16];    dFloat normals[16];    dFloat penetration[16];    int numCollisionPoints = NewtonCollisionCollide (newtonWorld, 1,                                e1Collision, &e1Matrix[0],                                e2Collision, &e2Matrix[0],                                &contacts[0], &normals[0], &penetration[0], 0);    if (numCollisionPoints > 0) {        return Collision(true,normals,contacts,penetration);    } else {        return Collision(false,normals,contacts,penetration);    }}
开发者ID:jfyne,项目名称:Black-Comrade,代码行数:48,


示例4: while

void CParticles::Update(float TimePassed){	static float FrictionFraction = 0;	FrictionFraction += TimePassed;	if(FrictionFraction > 2.0f) // safty messure		FrictionFraction = 0;		int FrictionCount = 0;	while(FrictionFraction > 0.05f)	{		FrictionCount++;		FrictionFraction -= 0.05f;	}		for(int g = 0; g < NUM_GROUPS; g++)	{		int i = m_aFirstPart[g];		while(i != -1)		{			int Next = m_aParticles[i].m_NextPart;			//m_aParticles[i].vel += flow_get(m_aParticles[i].pos)*time_passed * m_aParticles[i].flow_affected;			m_aParticles[i].m_Vel.y += m_aParticles[i].m_Gravity*TimePassed;						for(int f = 0; f < FrictionCount; f++) // apply friction				m_aParticles[i].m_Vel *= m_aParticles[i].m_Friction;						// move the point			vec2 Vel = m_aParticles[i].m_Vel*TimePassed;			Collision()->MovePoint(&m_aParticles[i].m_Pos, &Vel, 0.1f+0.9f*frandom(), NULL);			m_aParticles[i].m_Vel = Vel* (1.0f/TimePassed);						m_aParticles[i].m_Life += TimePassed;			m_aParticles[i].m_Rot += TimePassed * m_aParticles[i].m_Rotspeed;			// check particle death			if(m_aParticles[i].m_Life > m_aParticles[i].m_LifeSpan)			{				// remove it from the group list				if(m_aParticles[i].m_PrevPart != -1)					m_aParticles[m_aParticles[i].m_PrevPart].m_NextPart = m_aParticles[i].m_NextPart;				else					m_aFirstPart[g] = m_aParticles[i].m_NextPart;									if(m_aParticles[i].m_NextPart != -1)					m_aParticles[m_aParticles[i].m_NextPart].m_PrevPart = m_aParticles[i].m_PrevPart;									// insert to the free list				if(m_FirstFree != -1)					m_aParticles[m_FirstFree].m_PrevPart = i;				m_aParticles[i].m_PrevPart = -1;				m_aParticles[i].m_NextPart = m_FirstFree;				m_FirstFree = i;			}						i = Next;		}	}}
开发者ID:wthnonck,项目名称:tdtw,代码行数:59,


示例5: clamp

void CControls::ClampMousePos(){	if(m_pClient->m_Snap.m_SpecInfo.m_Active && !m_pClient->m_Snap.m_SpecInfo.m_UsePosition)	{		m_MousePos[g_Config.m_ClDummy].x = clamp(m_MousePos[g_Config.m_ClDummy].x, 200.0f, Collision()->GetWidth()*32-200.0f);		m_MousePos[g_Config.m_ClDummy].y = clamp(m_MousePos[g_Config.m_ClDummy].y, 200.0f, Collision()->GetHeight()*32-200.0f);	}	else	{		float CameraMaxDistance = 200.0f;		float FollowFactor = g_Config.m_ClMouseFollowfactor/100.0f;		float MouseMax = min(CameraMaxDistance/FollowFactor + g_Config.m_ClMouseDeadzone, (float)g_Config.m_ClMouseMaxDistance);		if(length(m_MousePos[g_Config.m_ClDummy]) > MouseMax)			m_MousePos[g_Config.m_ClDummy] = normalize(m_MousePos[g_Config.m_ClDummy])*MouseMax;	}}
开发者ID:ZAKDC00,项目名称:ddnet,代码行数:17,


示例6: Collision

void player::update(float time){    rect.left +=dx*time;    Collision(0);    rect.top += dy*time;    Collision(1);    Regeneration(time);    frame++;    if(frame > 2) frame -= 2;    if(dx>0) playerSp.setTextureRect(IntRect(32*(int)frame, 96, 32, 48));    if(dx<0) playerSp.setTextureRect(IntRect(32*(int)frame, 48, 32, 48));    if(dy<0) playerSp.setTextureRect(IntRect(32*(int)frame, 146, 32, 48));    if(dy>0) playerSp.setTextureRect(IntRect(32*(int)frame, 2, 32, 48));    playerSp.setPosition(rect.left, rect.top);    dx = 0;    dy = 0;}
开发者ID:BorisTopchiev,项目名称:Course_Work1_2D-RPG,代码行数:17,


示例7: add

	void CollisionPack::load(Core::File& pFile)	{		const int collisionSize = pFile.readInt32();		for(int i = 0; i < collisionSize; ++i)		{			add(Collision(pFile));		}	}
开发者ID:cantidio,项目名称:gorgonCpp,代码行数:8,


示例8: ObjectsCollision

bool ObjectsCollision(SDL_Rect *rect){        for (int i = 0; i < object_number; i++)                if (objects[i].solid &&                                 Collision(objects[i].sprite->rect, rect) != NONE)                        return true;        return false;}
开发者ID:maxweis,项目名称:game,代码行数:8,


示例9: Collision

void CExplosiveProjectile::Update(){		pos+=speed;	speed.y+=gs->gravity;	if(!--ttl)		Collision();}
开发者ID:genxinzou,项目名称:svn-spring-archive,代码行数:8,


示例10: if

万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。