Android Open Source - killingspree Server Blob From Project Back to project page killingspree .
License The source code is released under:
MIT License
If you think the Android project killingspree listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code package com.sillygames.killingSpree.serverEntities;
/ * f r o m w w w . j a v a 2 s . c o m * /
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.math.Vector2;
import com.sillygames.killingSpree.categories.EnemyCategory;
import com.sillygames.killingSpree.categories.LivingCategory;
import com.sillygames.killingSpree.helpers.Utils;
import com.sillygames.killingSpree.helpers.EntityUtils.ActorType;
import com.sillygames.killingSpree.managers.WorldBodyUtils;
import com.sillygames.killingSpree.managers.physics.Body;
import com.sillygames.killingSpree.managers.physics.Body.CollisionCategory;
import com.sillygames.killingSpree.managers.physics.Ray;
import com.sillygames.killingSpree.managers.physics.Body.BodyType;
import com.sillygames.killingSpree.networking.messages.EntityState;
public class ServerBlob extends ServerEntity implements EnemyCategory, LivingCategory {
public static final float WIDTH = 15f;
public static final float HEIGHT = 10f;
public static final float YOFFSET = 1f;
private float velocity;
private float spawnTime;
private Vector2 tempVector;
public ServerBlob(short id, float x, float y, WorldBodyUtils world) {
super (id, x, y, world);
actorType = ActorType.BLOB;
body = world.addBox(WIDTH, HEIGHT - YOFFSET * 2, position.x, position.y,
BodyType.StaticBody);
velocity = 55f;
body.setLinearVelocity(velocity, 0);
body.setGravityScale(0.75f);
body.setUserData(this );
spawnTime = 0.1f;
body.category = CollisionCategory.NONE;
tempVector = new Vector2();
}
public void setDirection(float direction) {
velocity *= direction;
body.setLinearVelocity(velocity, 0);
}
@Override
public void update(float delta) {
if (spawnTime > 0) {
spawnTime += delta;
if (spawnTime > 4) {
body.category = CollisionCategory.ENEMY;
body.bodyType = BodyType.DynamicBody;
spawnTime = -1f;
}
return ;
}
Vector2 velocityVector = body.getLinearVelocity();
position.set(body.getPosition());
if (body.grounded) {
Body targetBody = Ray.findBody(world.worldManager.getWorld(),
body, tempVector.set(Math.signum(velocityVector.x) * 5, 0), 40f);
if (targetBody != null && targetBody.getUserData() instanceof ServerPlayer) {
body.setLinearVelocity(1.5f * velocityVector.x, velocityVector.y + 100);
}
}
velocityVector = tempVector.set(body.getLinearVelocity());
if (Math.abs(velocityVector.x) < 40f) {
velocity *= -1;
velocityVector.x = velocity;
}
body.setLinearVelocity(velocityVector);
position.set(body.getPosition());
if (Utils.wrapBody(position)) {
body.setTransform(position, 0);
}
}
@Override
public void dispose() {
world.destroyBody(body);
}
@Override
public float getWidth() {
return WIDTH;
}
@Override
public void updateState(EntityState state) {
super.updateState(state);
state.vX = body.getLinearVelocity().x;
state.vY = body.getLinearVelocity().y;
state.extra |= (short ) (spawnTime > 0.01f ? 0 : 1);
}
@Override
public boolean kill() {
if (spawnTime < 0 && !body.toDestroy) {
dispose();
world.audio.jumpedOn();
return true;
}
return false;
}
}
Java Source Code List com.sillygames.killingSpree.AndroidLauncher.java com.sillygames.killingSpree.KillingSpree.java com.sillygames.killingSpree.PlatformServices.java com.sillygames.killingSpree.categories.EnemyCategory.java com.sillygames.killingSpree.categories.ExplodingWeaponCategory.java com.sillygames.killingSpree.categories.LivingCategory.java com.sillygames.killingSpree.categories.NonExplodingWeaponCategory.java com.sillygames.killingSpree.clientEntities.ClientArrow.java com.sillygames.killingSpree.clientEntities.ClientBlob.java com.sillygames.killingSpree.clientEntities.ClientBomb.java com.sillygames.killingSpree.clientEntities.ClientBullet.java com.sillygames.killingSpree.clientEntities.ClientEntity.java com.sillygames.killingSpree.clientEntities.ClientFly.java com.sillygames.killingSpree.clientEntities.ClientFrog.java com.sillygames.killingSpree.clientEntities.ClientPlayer.java com.sillygames.killingSpree.clientEntities.ClientTestPlayer.java com.sillygames.killingSpree.controls.InputController.java com.sillygames.killingSpree.controls.onScreenControls.java com.sillygames.killingSpree.desktop.DesktopLauncher.java com.sillygames.killingSpree.desktop.DesktopServices.java com.sillygames.killingSpree.helpers.EntityUtils.java com.sillygames.killingSpree.helpers.Event.java com.sillygames.killingSpree.helpers.MyButton.java com.sillygames.killingSpree.helpers.MyConnection.java com.sillygames.killingSpree.helpers.Utils.java com.sillygames.killingSpree.managers.LevelLoader.java com.sillygames.killingSpree.managers.WorldBodyUtils.java com.sillygames.killingSpree.managers.WorldManager.java com.sillygames.killingSpree.managers.WorldRenderer.java com.sillygames.killingSpree.managers.physics.Body.java com.sillygames.killingSpree.managers.physics.CollisionProcessor.java com.sillygames.killingSpree.managers.physics.Ray.java com.sillygames.killingSpree.managers.physics.WorldDebugRenderer.java com.sillygames.killingSpree.managers.physics.World.java com.sillygames.killingSpree.networking.ControlsSender.java com.sillygames.killingSpree.networking.NetworkRegisterer.java com.sillygames.killingSpree.networking.StateProcessor.java com.sillygames.killingSpree.networking.messages.AudioMessage.java com.sillygames.killingSpree.networking.messages.ClientDetailsMessage.java com.sillygames.killingSpree.networking.messages.ConnectMessage.java com.sillygames.killingSpree.networking.messages.ControlsMessage.java com.sillygames.killingSpree.networking.messages.EntityState.java com.sillygames.killingSpree.networking.messages.GameStateMessage.java com.sillygames.killingSpree.networking.messages.PlayerNamesMessage.java com.sillygames.killingSpree.networking.messages.ServerStatusMessage.java com.sillygames.killingSpree.pool.AssetLoader.java com.sillygames.killingSpree.pool.EntityPool.java com.sillygames.killingSpree.pool.MessageObjectPool.java com.sillygames.killingSpree.pool.Pool.java com.sillygames.killingSpree.pool.Poolable.java com.sillygames.killingSpree.renderers.HUDRenderer.java com.sillygames.killingSpree.screens.AbstractScreen.java com.sillygames.killingSpree.screens.ClientDiscoveryScreen.java com.sillygames.killingSpree.screens.GameScreen.java com.sillygames.killingSpree.screens.LobbyScreen.java com.sillygames.killingSpree.screens.MainMenuScreen.java com.sillygames.killingSpree.screens.OptionsScreen.java com.sillygames.killingSpree.screens.SplashScreen.java com.sillygames.killingSpree.screens.settings.Constants.java com.sillygames.killingSpree.serverEntities.ServerArrow.java com.sillygames.killingSpree.serverEntities.ServerBlob.java com.sillygames.killingSpree.serverEntities.ServerBomb.java com.sillygames.killingSpree.serverEntities.ServerBullet.java com.sillygames.killingSpree.serverEntities.ServerEntity.java com.sillygames.killingSpree.serverEntities.ServerFly.java com.sillygames.killingSpree.serverEntities.ServerFrog.java com.sillygames.killingSpree.serverEntities.ServerPlayer.java com.sillygames.killingSpree.sound.SFXPlayer.java