List of usage examples for com.badlogic.gdx.physics.box2d MassData MassData
MassData
From source file:com.dongbat.invasion.registry.EnemyRegistry.java
public static Entity createEnemy(String enemyType, Float positionX) { EnemyInfo enemyInfo = get(enemyType); EnemyType enemyTypeAI = createEnemyType(enemyInfo); Enemy enemyComponent = new Enemy(); enemyComponent.setType(enemyTypeAI); enemyComponent.setAirUnit(enemyInfo.isAirUnit()); enemyComponent.setBoss(enemyInfo.isBoss()); enemyComponent.setInfinitePickup(enemyInfo.isInfinitePickup()); enemyComponent.setCanPickAds(enemyInfo.canPickAds()); enemyComponent.setAdsPickingDelay(enemyInfo.getAdsPickingDelay()); enemyComponent.setTributeDelay(enemyInfo.getTributeDelay()); enemyComponent.setBounty(enemyInfo.getBounty()); Vector2 position;/*from www . java2s . c om*/ if (enemyInfo.isAirUnit()) { position = new Vector2(Constants.ENEMY.AIR_START_X, Constants.ENEMY.AIR_START_Y); } else { float startY = Constants.PHYSICS.GROUND_Y + enemyInfo.getRadius(); position = new Vector2(Constants.ENEMY.GROUND_START_X, startY); } if (positionX != null) { position.x = positionX; } Body body = PhysicsUtil.createBody(position, enemyInfo.getRadius()); body.setGravityScale(0); MassData massData = new MassData(); massData.mass = 1; body.setMassData(massData); Physics physicsComponent = new Physics(); physicsComponent.setBody(body); physicsComponent.setMaxSpeed(enemyInfo.getMaxSpeed()); physicsComponent.setRadius(enemyInfo.getRadius()); Health healthComponent = new Health(enemyInfo.getMaxHealth(), enemyInfo.getMaxHealth()); Collision collision = new Collision(); Buff buffComponent = new Buff(); Delay delayComponent = new Delay(); Ability abilityComponent = new Ability(); String abilities = enemyInfo.getAbilities(); if (abilities != null && !abilities.isEmpty()) { String[] names = enemyInfo.getAbilities().split(","); for (String name : names) { AbilityInfo ability = AbilityRegistry.getAbility(name); abilityComponent.addAbility(name, ability); } } EnemyMovement movementComponent = new EnemyMovement(); DisplayPosition displayPosition = new DisplayPosition(position); Ads ads = new Ads(); ads.setOffline(true); ads.setPosition(new Vector2(Constants.ADS.DEFAULT_OFFSET_X, Constants.ADS.DEFAULT_OFFSET_Y)); Spine spineComponent = new Spine(enemyInfo.getSpineName()); Entity enemy = ECSUtil.getWorld().createEntity().edit().add(enemyComponent).add(physicsComponent) .add(healthComponent).add(collision).add(buffComponent).add(abilityComponent).add(movementComponent) .add(ads).add(displayPosition).add(spineComponent).add(delayComponent).getEntity(); physicsComponent.getBody().setUserData(enemy); // Add enemy to a group ECSUtil.getWorld().getManager(GroupManager.class).add(enemy, Constants.ENEMY.GROUP_NAME); return enemy; }