コード例 #1
0
ファイル: Level.java プロジェクト: ejotado/libgdx
 public void tick() {
   tick++;
   if (player.removed) {
     respawnTime++;
     if (respawnTime == 20) {
       screen.mayRespawn = true;
     }
   }
   for (int i = 0; i < entities.size(); i++) {
     Entity e = entities.get(i);
     int xSlotOld = e.xSlot;
     int ySlotOld = e.ySlot;
     if (!e.removed) e.tick();
     e.xSlot = (int) ((e.x + e.w / 2.0) / 10);
     e.ySlot = (int) ((e.y + e.h / 2.0) / 10);
     if (e.removed) {
       if (xSlotOld >= 0 && ySlotOld >= 0 && xSlotOld < width && ySlotOld < height) {
         entityMap[xSlotOld + ySlotOld * width].remove(e);
       }
       entities.remove(i--);
     } else {
       if (e.xSlot != xSlotOld || e.ySlot != ySlotOld) {
         if (xSlotOld >= 0 && ySlotOld >= 0 && xSlotOld < width && ySlotOld < height) {
           entityMap[xSlotOld + ySlotOld * width].remove(e);
         }
         if (e.xSlot >= 0 && e.ySlot >= 0 && e.xSlot < width && e.ySlot < height) {
           entityMap[e.xSlot + e.ySlot * width].add(e);
         } else {
           e.outOfBounds();
         }
       }
     }
   }
 }
コード例 #2
0
ファイル: Level.java プロジェクト: ejotado/libgdx
  public void add(Entity e) {
    entities.add(e);
    e.init(this);

    e.xSlot = (int) ((e.x + e.w / 2.0) / 10);
    e.ySlot = (int) ((e.y + e.h / 2.0) / 10);
    if (e.xSlot >= 0 && e.ySlot >= 0 && e.xSlot < width && e.ySlot < height) {
      entityMap[e.xSlot + e.ySlot * width].add(e);
    }
  }