@Override protected void onPause() super.onPause(); gameView.pause(); gameManager.saveGameState(gameId, gameView.getCurrentState());
// Feature: Save game state public void saveGameState(String gameId, String state) SharedPreferences.Editor editor = prefs.edit(); editor.putString(gameId + "_state", state); editor.putLong(gameId + "_timestamp", System.currentTimeMillis()); editor.apply();
// GameManager.java public class GameManager private Context context; private SharedPreferences prefs; private static final String PREFS_NAME = "GamePrefs"; public GameManager(Context context) this.context = context; prefs = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
@Override public boolean onTouchEvent(MotionEvent event) switch (event.getAction()) case MotionEvent.ACTION_DOWN: case MotionEvent.ACTION_MOVE: playerX = event.getX(); playerY = event.getY(); break; return true; juegos para android version 4.1.2
private void controlFPS() try Thread.sleep(17); // ~60 FPS catch (InterruptedException e) e.printStackTrace();
public void pause() playing = false; try gameThread.join(); catch (InterruptedException e) e.printStackTrace();
// GameActivity.java public class GameActivity extends Activity private GameView gameView; private GameManager gameManager; private String gameId = "simple_game"; @Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); gameManager = new GameManager(this); gameView = new GameView(this); setContentView(gameView); @Override protected void onPause() super
I understand you're looking to create a feature for Android games compatible with version 4.1.2 (API level 16, Jelly Bean). That's an older version, but still possible with some limitations.
// GameScreen.java public class GameScreen implements Screen private OrthographicCamera camera; private SpriteBatch batch; private Texture playerTexture; private Vector2 playerPosition;
private void draw() if (holder.getSurface().isValid()) Canvas canvas = holder.lockCanvas(); Paint paint = new Paint(); // Clear screen canvas.drawColor(Color.BLACK); // Draw player paint.setColor(Color.RED); canvas.drawCircle(playerX, playerY, 30, paint); // Draw score paint.setColor(Color.WHITE); paint.setTextSize(40); canvas.drawText("Score: " + score, 50, 80, paint); holder.unlockCanvasAndPost(canvas); @Override protected void onPause() super.onPause()
@Override public void run() while (playing) update(); draw(); controlFPS();
public String getCurrentState() return score + "," + playerX + "," + playerY;
public void resume() playing = true; gameThread = new Thread(this); gameThread.start();