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


Java ContactImpulse类代码示例

本文整理汇总了Java中com.badlogic.gdx.physics.box2d.ContactImpulse的典型用法代码示例。如果您正苦于以下问题:Java ContactImpulse类的具体用法?Java ContactImpulse怎么用?Java ContactImpulse使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


ContactImpulse类属于com.badlogic.gdx.physics.box2d包,在下文中一共展示了ContactImpulse类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: play

import com.badlogic.gdx.physics.box2d.ContactImpulse; //导入依赖的package包/类
private Sound play(PhysixBodyComponent component, ContactImpulse impulse, Sound ignore) {
    if (component != null) {
        ImpactSoundComponent isc = ComponentMappers.impactSound.get(component.getEntity());
        if (isc != null && isc.sound != ignore && isc.lastPlayed.get() > isc.minDelay) {
            float impulseStrength = Math.abs(impulse.getNormalImpulses()[0]);
            if (impulseStrength > isc.minImpulseStrength) {
                float speed = component.getLinearVelocity().len();
                if (speed > isc.minSpeed) {
                    isc.lastPlayed.reset();
                    SoundEmitter.playGlobal(isc.sound, false, component.getX(), component.getY(), 0);
                    return isc.sound;
                }
            }
        }
    }
    return null;
}
 
开发者ID:GameDevWeek,项目名称:CodeBase,代码行数:18,代码来源:ImpactSoundListener.java

示例2: onContact

import com.badlogic.gdx.physics.box2d.ContactImpulse; //导入依赖的package包/类
@Override
public void onContact(B2FlxShape sprite1, B2FlxShape sprite2, Contact contact, Manifold oldManifold, ContactImpulse impulse)
{
	if(_broke)
	{
		// The body already broke.
		return;
	}
	
	// Should the body break?
	int count = contact.getWorldManifold().getNumberOfContactPoints();
	
	float maxImpulse = 0.0f;
	for(int i = 0; i < count; i++)
	{
		maxImpulse = B2FlxMath.max(maxImpulse, impulse.getNormalImpulses()[i]);
	}
	
	if(maxImpulse > 40.0f)
	{
		_break = true;
	}
}
 
开发者ID:flixel-gdx,项目名称:flixel-gdx-box2d,代码行数:24,代码来源:TestBreakable.java

示例3: postSolve

import com.badlogic.gdx.physics.box2d.ContactImpulse; //导入依赖的package包/类
@Override
public void postSolve(Contact contact, ContactImpulse impulse) {
    if(impulse.getNormalImpulses()[0] > 0.01)
    {
        /* If body A was hit */
        if(contact.getFixtureA() != null)
        {
            if (Actor.class.isInstance(contact.getFixtureA().getBody().getUserData())) {
                Actor a = (Actor) contact.getFixtureA().getBody().getUserData();
                evalDamage(a, impulse);

            }
        }

        /* If body B was hit */
        if(contact.getFixtureB() != null)
        {
            if (Actor.class.isInstance(contact.getFixtureB().getBody().getUserData())) {
                Actor b = (Actor) contact.getFixtureB().getBody().getUserData();
                evalDamage(b, impulse);
            }
        }
    }
}
 
开发者ID:OlliV,项目名称:angr,代码行数:25,代码来源:ModelContactListener.java

示例4: evalDamage

import com.badlogic.gdx.physics.box2d.ContactImpulse; //导入依赖的package包/类
/**
 * Evaluate damage and score, and check if actor needs to be destroyed
 * @param actor Current actor
 * @param impulse Impulse
 */
private void evalDamage(Actor actor, ContactImpulse impulse) {
    if (Destructible.class.isInstance(actor)) {
        /* Hit and check final health status */
        if (((Destructible)actor).getDatamageModel() == null)
            return;
        ((Destructible)actor).getDatamageModel().hit(impulse.getNormalImpulses()[0]);
        if (((Destructible)actor).getDatamageModel().getHealth() < 0.01f) {

            if (!((Destructible)actor).isDestroyed()) {
                /* Update score counter */
                gameState.addPoints(((Destructible)actor).getDatamageModel().getPoints(),
                        ((Destructible)actor).getDatamageModel().isEnemy());

                /* Destroy actor */
                ((Destructible)actor).setDestroyed();
            }
        }
    }
}
 
开发者ID:OlliV,项目名称:angr,代码行数:25,代码来源:ModelContactListener.java

示例5: postSolve

import com.badlogic.gdx.physics.box2d.ContactImpulse; //导入依赖的package包/类
/**
 * Called every time step while the fixtures are overlapping
 * Gives you a chance to find out what impulses were caused by the collision response after it has been applied
 *
 * @param contact
 * @param impulse
 */
@Override
public void postSolve(Contact contact, ContactImpulse impulse) {
    //Gdx.app.log(this.getClass().getSimpleName(), "postSolve() called");

    Body a = contact.getFixtureA().getBody();
    Body b = contact.getFixtureB().getBody();

    // If a is a player
    if (a.getUserData().getClass() == PlayerSystem.class) {
        // If b is a structure
        if (b.getUserData().getClass() == StructureSystem.class) {
            a.setUserData(BodyComponent.PLAYER_STRUCTURE_COLLISION);
        }
        // If b is an enemy
        if (b.getUserData().getClass() == EnemySystem.class) {
            a.setUserData(BodyComponent.PLAYER_ENEMY_COLLISION);
        }
    }

    // If b is a player
    if (b.getUserData().getClass() == PlayerSystem.class) {
        // If a is a structure
        if (a.getUserData().getClass() == StructureSystem.class) {
            b.setUserData(BodyComponent.PLAYER_STRUCTURE_COLLISION);
        }
        // If a is an enemy
        if (a.getUserData().getClass() == EnemySystem.class) {
            b.setUserData(BodyComponent.PLAYER_ENEMY_COLLISION);
        }
    }
}
 
开发者ID:DevelopersGuild,项目名称:rebel-invader,代码行数:39,代码来源:PhysicsListener.java

示例6: postSolve

import com.badlogic.gdx.physics.box2d.ContactImpulse; //导入依赖的package包/类
@Override
public void postSolve(Contact contact, ContactImpulse impulse) {
	Fixture fixtureA = contact.getFixtureA();
	Fixture fixtureB = contact.getFixtureB();
	
	ContactListener listener = get(
		fixtureA.getFilterData().categoryBits,
		fixtureB.getFilterData().categoryBits
	);
	
	if (listener != null) {
		listener.postSolve(contact, impulse);
	}
}
 
开发者ID:saltares,项目名称:libgdxjam,代码行数:15,代码来源:CollisionHandler.java

示例7: postSolve

import com.badlogic.gdx.physics.box2d.ContactImpulse; //导入依赖的package包/类
@Override
public void postSolve(Contact contact, ContactImpulse impulse) {
    Body bodyA = contact.getFixtureA().getBody(), bodyB = contact.getFixtureB().getBody();
    PhysicsComponent physA = (PhysicsComponent)bodyA.getUserData(), 
                     physB = (PhysicsComponent)bodyB.getUserData();
    if (physA == null || physB == null) return;
    physA.addCollisionNormal(impulse.getNormalImpulses()[0]);
    physB.addCollisionNormal(impulse.getNormalImpulses()[0]);
}
 
开发者ID:Deftwun,项目名称:ZombieCopter,代码行数:10,代码来源:PhysicsSystem.java

示例8: postSolve

import com.badlogic.gdx.physics.box2d.ContactImpulse; //导入依赖的package包/类
@Override
public void postSolve(Contact contact, ContactImpulse impulse) {
	Fixture fixtureA = contact.getFixtureA();
	Fixture fixtureB = contact.getFixtureB();
	
	ContactListener listener = getListener(fixtureA.getFilterData().categoryBits,
										   fixtureB.getFilterData().categoryBits);
	
	if (listener != null) {
		listener.postSolve(contact, impulse);
	}
}
 
开发者ID:saltares,项目名称:sioncore,代码行数:13,代码来源:CollisionHandler.java

示例9: postSolve

import com.badlogic.gdx.physics.box2d.ContactImpulse; //导入依赖的package包/类
@Override
public void postSolve(Contact contact, ContactImpulse impulse) {
    if (contact.getFixtureA() != null && contact.getFixtureB() != null) {
        for (ComponentContactListener listener : listenerMap.values()) {
            listener.postSolve(contact, impulse);
        }
    }
}
 
开发者ID:GameDevWeek,项目名称:CodeBase,代码行数:9,代码来源:PhysixComponentAwareContactListener.java

示例10: onContact

import com.badlogic.gdx.physics.box2d.ContactImpulse; //导入依赖的package包/类
@Override
public void onContact(B2FlxShape sprite1, B2FlxShape sprite2, Contact contact, Manifold oldManifold, ContactImpulse impulse)
{
	_ghost2.removeOverlap();
	if(!_ghost2.gotOverlaps())
		_ghost2.setAlpha(1f);
}
 
开发者ID:flixel-gdx,项目名称:flixel-gdx-box2d,代码行数:8,代码来源:TestCollisionDetection.java

示例11: postSolve

import com.badlogic.gdx.physics.box2d.ContactImpulse; //导入依赖的package包/类
/**
 * Internal: This lets you inspect a contact after the solver is finished. This is useful for inspecting impulses. Note: the contact
 * manifold does not include time of impact impulses, which can be arbitrarily large if the sub-step is small. Hence the
 * impulse is provided explicitly in a separate data structure. Note: this is only called for contacts that are touching,
 * solid, and awake.
 */
@Override
public void postSolve(Contact contact, ContactImpulse impulse)
{
	if(_event == null)
		return;
	_event.oldManifold = null;
	_event.impulse = impulse;
	dispatch(contact, B2FlxContactEvent.POST_SOLVE);
}
 
开发者ID:flixel-gdx,项目名称:flixel-gdx-box2d,代码行数:16,代码来源:B2FlxContactListener.java

示例12: postSolve

import com.badlogic.gdx.physics.box2d.ContactImpulse; //导入依赖的package包/类
@Override
public void postSolve(Contact contact, ContactImpulse impulse) {
    AbstractWorldManager managerA=getManager(((Box2DPhysicsObject) contact.getFixtureA().getUserData()).getGrupo());
    AbstractWorldManager managerB=getManager(((Box2DPhysicsObject) contact.getFixtureB().getUserData()).getGrupo());

    if(managerA!=null) managerA.handlePostSolve(contact, impulse);
    if(managerB!=null) managerB.handlePostSolve(contact, impulse);

}
 
开发者ID:Rubentxu,项目名称:DreamsLibGdx,代码行数:10,代码来源:WorldController.java

示例13: postSolve

import com.badlogic.gdx.physics.box2d.ContactImpulse; //导入依赖的package包/类
@Override public void postSolve(Contact arg0, ContactImpulse arg1) {
    // Not used.
}
 
开发者ID:StringMon,项目名称:homescreenarcade,代码行数:4,代码来源:Field.java

示例14: postSolve

import com.badlogic.gdx.physics.box2d.ContactImpulse; //导入依赖的package包/类
/**
 * {@inheritDoc}
 */
@Override
public void postSolve(Contact contact, ContactImpulse impulse) {
}
 
开发者ID:AndreFCruz,项目名称:feup-lpoo-armadillo,代码行数:7,代码来源:WorldContactListener.java

示例15: postSolve

import com.badlogic.gdx.physics.box2d.ContactImpulse; //导入依赖的package包/类
@Override
public void postSolve(Contact contact, ContactImpulse impulse) {
	// TODO Auto-generated method stub
	
}
 
开发者ID:jocasolo,项目名称:water2d-libgdx,代码行数:6,代码来源:MyContactListener.java


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