Android Open Source - RollOverSphere---a-simple-libgdx-game Box Region Manager






From Project

Back to project page RollOverSphere---a-simple-libgdx-game.

License

The source code is released under:

MIT License

If you think the Android project RollOverSphere---a-simple-libgdx-game 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.igorcrevar.rolloverchuck.objects.boxes;
/*w ww . ja  v a 2s .  c  om*/
import java.util.Random;

import com.badlogic.gdx.math.Vector3;
import com.igorcrevar.rolloverchuck.GameData;

public class BoxRegionManager {
  private IBoxRegion[] regions;
  private IBoxRegion[] tmpRegions;
  private Vector3 tmpVector = new Vector3();
  private Random rnd = new Random();
  
  public BoxRegionManager(GameData gameData) {
    if ((int)gameData.FieldSize % (int)gameData.CubeRegionSize != 0) {
      throw new IllegalArgumentException();
    }
    
    int size = gameData.getRegionsSize();
    regions = new IBoxRegion[size * size];
    tmpRegions = new IBoxRegion[size * size];
    
    for (int i = 0; i < size; ++i) {
      for (int j = 0; j < size; ++j) {
        float posX = -gameData.FieldSize / 2.0f + j * gameData.CubeRegionSize;
        float posY = -gameData.FieldSize / 2.0f + i * gameData.CubeRegionSize;
        regions[i * size + j] = new BoxRegion(posX, posY, gameData.CubeRegionSize * 0.5f);
      }
    }
  }
  
  public void init() {
    for (IBoxRegion br : regions) {
      br.free();
    }
  }
  
  public void markRegionAsNotFree(GameData gameData, int x, int y, int width, int height) {
    for (int i = y; i < y + height; ++i) {
      for (int j = x; j < x + width; ++j) {
        int offset = gameData.getRegionsSize() * i + j;
        if (offset < gameData.getRegionsSize()) {
          regions[offset].take();
        }
      }
    }    
  }
  
  public IBoxRegion getOne(Vector3 basePosition, float minDistanceSquared) {
    int numberAvailable = 0;
    for (IBoxRegion br : regions) {
      if (basePosition == null || br.isFreeAndNotNear(basePosition, tmpVector, minDistanceSquared)) {
        tmpRegions[numberAvailable] = br;
        ++numberAvailable;
      }        
    }
    
    if (numberAvailable > 0) {
      int chs = rnd.nextInt(numberAvailable);
      return tmpRegions[chs];
    }
    
    return null;
  }
}




Java Source Code List

com.google.example.games.basegameutils.GameHelperUtils.java
com.google.example.games.basegameutils.GameHelper.java
com.igorcrevar.rolloverchuck.DesktopRunner.java
com.igorcrevar.rolloverchuck.GameConsts.java
com.igorcrevar.rolloverchuck.GameData.java
com.igorcrevar.rolloverchuck.GameListener.java
com.igorcrevar.rolloverchuck.GameManager.java
com.igorcrevar.rolloverchuck.GameType.java
com.igorcrevar.rolloverchuck.IActivityRequestHandler.java
com.igorcrevar.rolloverchuck.ISceneManager.java
com.igorcrevar.rolloverchuck.IScene.java
com.igorcrevar.rolloverchuck.mesh.CubeMeshWithNormals.java
com.igorcrevar.rolloverchuck.mesh.CubeMesh.java
com.igorcrevar.rolloverchuck.mesh.FieldMesh.java
com.igorcrevar.rolloverchuck.mesh.IMesh.java
com.igorcrevar.rolloverchuck.mesh.SphereMesh.java
com.igorcrevar.rolloverchuck.objects.BoxObject.java
com.igorcrevar.rolloverchuck.objects.ChuckObject.java
com.igorcrevar.rolloverchuck.objects.ChuckSpriteObject.java
com.igorcrevar.rolloverchuck.objects.EndGameButtonsObject.java
com.igorcrevar.rolloverchuck.objects.FieldObject.java
com.igorcrevar.rolloverchuck.objects.GameButton.java
com.igorcrevar.rolloverchuck.objects.IntroSceneButtonsObject.java
com.igorcrevar.rolloverchuck.objects.MainWallObject.java
com.igorcrevar.rolloverchuck.objects.StarsObject.java
com.igorcrevar.rolloverchuck.objects.TextButton.java
com.igorcrevar.rolloverchuck.objects.TrailObject.java
com.igorcrevar.rolloverchuck.objects.boxes.BoxManager.java
com.igorcrevar.rolloverchuck.objects.boxes.BoxRegionManager.java
com.igorcrevar.rolloverchuck.objects.boxes.BoxRegion.java
com.igorcrevar.rolloverchuck.objects.boxes.BoxTypeFactory.java
com.igorcrevar.rolloverchuck.objects.boxes.IBoxRegion.java
com.igorcrevar.rolloverchuck.objects.boxes.IBoxType.java
com.igorcrevar.rolloverchuck.physics.CollisionSolver.java
com.igorcrevar.rolloverchuck.physics.ICollisionIterationHandler.java
com.igorcrevar.rolloverchuck.physics.SphereMoving.java
com.igorcrevar.rolloverchuck.points.PlayerPoint.java
com.igorcrevar.rolloverchuck.points.PointsManager.java
com.igorcrevar.rolloverchuck.scenes.GameLoadingScene.java
com.igorcrevar.rolloverchuck.scenes.GameScene.java
com.igorcrevar.rolloverchuck.scenes.IntroScene.java
com.igorcrevar.rolloverchuck.scenes.GameMode.ArcadeGameMode.java
com.igorcrevar.rolloverchuck.scenes.GameMode.IGameMode.java
com.igorcrevar.rolloverchuck.scenes.GameMode.StressFreeGameMode.java
com.igorcrevar.rolloverchuck.utils.CollisionHelper.java
com.igorcrevar.rolloverchuck.utils.GameHelper.java
com.igorcrevar.rolloverchuck.utils.IMyFontDrawerFont.java
com.igorcrevar.rolloverchuck.utils.Mathf.java
com.igorcrevar.rolloverchuck.utils.MyFontDrawerBatch.java
com.igorcrevar.rolloverchuck.utils.MyFontDrawerDefaultFont.java
com.igorcrevar.rolloverchuck.utils.MyFontDrawer.java
com.igorcrevar.rolloverchuck.utils.ShaderAssetLoader.java
com.wayilookatgames.rolloverball.MainActivity.java