Android Open Source - Gloomy-Dungeons-3D Game Activity Zeemote Helper






From Project

Back to project page Gloomy-Dungeons-3D.

License

The source code is released under:

MIT License

If you think the Android project Gloomy-Dungeons-3D 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 zame.game;
/*from w  w w. j a  va  2s . co m*/
import android.view.Menu;
import android.view.MenuItem;
import android.util.Log;
import com.zeemote.zc.Controller;
import com.zeemote.zc.event.BatteryEvent;
import com.zeemote.zc.event.ButtonEvent;
import com.zeemote.zc.event.ControllerEvent;
import com.zeemote.zc.event.DisconnectEvent;
import com.zeemote.zc.event.IButtonListener;
import com.zeemote.zc.event.IJoystickListener;
import com.zeemote.zc.event.IStatusListener;
import com.zeemote.zc.event.JoystickEvent;
import com.zeemote.zc.ui.android.ControllerAndroidUi;
import zame.game.Common;
import zame.game.engine.Controls;

public class GameActivityZeemoteHelper implements IStatusListener, IJoystickListener, IButtonListener
{
    private static final int MENU_ITEM_ZEEMOTE = 4;

    private Controller zeemoteController = null;
    private ControllerAndroidUi zeemoteControllerUi = null;
    private boolean keepConnection = false;

    public int getMenuResId()
    {
        return R.menu.game_zeemote;
    }

    public void onPrepareOptionsMenu(Menu menu)
    {
        menu.findItem(R.id.menu_zeemote).setVisible(Config.controlsType == Controls.TYPE_ZEEMOTE);
    }

    public boolean onOptionsItemSelected(MenuItem item)
    {
        switch (item.getItemId())
        {
            case R.id.menu_zeemote:
                if (zeemoteControllerUi != null) {
                    zeemoteControllerUi.showControllerMenu();
                    keepConnection = true;
                }
                return true;
        }

        return false;
    }

    public void onStart(GameActivity activity)
    {
        if (Config.controlsType == Controls.TYPE_ZEEMOTE) {
            if (zeemoteController == null) {
                zeemoteController = new Controller(1);
                zeemoteController.addStatusListener(this);
                zeemoteController.addButtonListener(this);
                zeemoteController.addJoystickListener(this);
            }

            if (zeemoteControllerUi == null) {
                zeemoteControllerUi = new ControllerAndroidUi(activity, zeemoteController);
                keepConnection = false;
            }

            if (!keepConnection && !zeemoteController.isConnected()) {
                zeemoteControllerUi.startConnectionProcess();
                keepConnection = true;
            } else {
                keepConnection = false;
            }
        }
    }

    public void onPause()
    {
        if (!keepConnection && zeemoteController != null && zeemoteController.isConnected()) {
            try {
                zeemoteController.disconnect();
            } catch (Exception ex) {
                Log.e(Common.LOG_KEY, "Exception", ex);
            }
        }
    }

    @Override
    public void batteryUpdate(BatteryEvent event)
    {
    }

    @Override
    public void connected(ControllerEvent event)
    {
        Controls.initJoystickVars();
    }

    @Override
    public void disconnected(DisconnectEvent event)
    {
        Controls.initJoystickVars();
    }

    @Override
    public void joystickMoved(JoystickEvent e)
    {
        if (Config.controlsType == Controls.TYPE_ZEEMOTE) {
            Controls.joyX = (float)(e.getScaledX(-100, 100)) / 150.0f * ConfigZeemote.zeemoteXAccel;
            Controls.joyY = - (float)(e.getScaledY(-100, 100)) / 150.0f * ConfigZeemote.zeemoteYAccel;
        }
    }

    @Override
    public void buttonPressed(ButtonEvent e)
    {
        if (Config.controlsType == Controls.TYPE_ZEEMOTE) {
            int buttonId = e.getButtonGameAction();

            if ((buttonId >= 0) && (buttonId < ConfigZeemote.zeemoteButtonMappings.length)) {
                Controls.joyButtonsMask |= ConfigZeemote.zeemoteButtonMappings[buttonId];
            }
        }
    }

    @Override
    public void buttonReleased(ButtonEvent e)
    {
        if (Config.controlsType == Controls.TYPE_ZEEMOTE) {
            int buttonId = e.getButtonGameAction();

            if ((buttonId >= 0) && (buttonId < ConfigZeemote.zeemoteButtonMappings.length)) {
                Controls.joyButtonsMask &= ~(ConfigZeemote.zeemoteButtonMappings[buttonId]);
            }
        }
    }
}




Java Source Code List

zame.game.AppConfig.java
zame.game.AppConfig.java
zame.game.Common.java
zame.game.ConfigZeemote.java
zame.game.ConfigZeemote.java
zame.game.Config.java
zame.game.GameActivityZeemoteHelper.java
zame.game.GameActivityZeemoteHelper.java
zame.game.GameActivity.java
zame.game.GamePreferencesActivity.java
zame.game.GamePreferencesActivity.java
zame.game.MenuActivityHelper.java
zame.game.MenuActivityHelper.java
zame.game.MenuActivity.java
zame.game.Renderer.java
zame.game.SoundManager.java
zame.game.ZameApplicationAnalyticsHelper.java
zame.game.ZameApplicationAnalyticsHelper.java
zame.game.ZameApplication.java
zame.game.ZameGame.java
zame.game.ZameJniRenderer.java
zame.game.engine.Action.java
zame.game.engine.AutoWall.java
zame.game.engine.Controls.java
zame.game.engine.Door.java
zame.game.engine.GameHelper.java
zame.game.engine.GameHelper.java
zame.game.engine.Game.java
zame.game.engine.Labels.java
zame.game.engine.LevelConfig.java
zame.game.engine.LevelRenderer.java
zame.game.engine.Level.java
zame.game.engine.Mark.java
zame.game.engine.Monster.java
zame.game.engine.Overlay.java
zame.game.engine.PortalTracer.java
zame.game.engine.State.java
zame.game.engine.Stats.java
zame.game.engine.TextureLoader.java
zame.game.engine.Weapons.java
zame.game.views.EndLevelView.java
zame.game.views.GameOverView.java
zame.game.views.GameView.java
zame.game.views.IZameView.java
zame.game.views.MenuViewHelper.java
zame.game.views.MenuViewHelper.java
zame.game.views.MenuView.java
zame.game.views.PreLevelView.java
zame.game.views.ZameGameView.java
zame.libs.FrameLayout.java
zame.libs.GLSurfaceView21.java
zame.libs.Grid.java
zame.libs.KeyMapPreference.java
zame.libs.LabelMaker.java
zame.libs.ListPreference.java
zame.libs.NumericSprite.java
zame.libs.SeekBarPreference.java
zame.promo.PromoView.java