Add in ignition of horizontal matching blocks.

concurrentModificationException1
sigonasr2, Sig, Sigo 3 years ago
parent 6ed1928bf3
commit 985a71015a
  1. BIN
      Meteo_Engine.jar
  2. 6
      src/sig/BlockClump.java
  3. 14
      src/sig/Board.java

Binary file not shown.

@ -47,6 +47,12 @@ public class BlockClump {
this.blocks.add(b);
}
}
public void removeBlock(Block...blocks) {
for (Block b : blocks) {
updateBlockCollision();
this.blocks.remove(b);
}
}
public void drawBlocks(Graphics g, int originX, int originY, int block_width, int block_height) {
for (Block b : blocks) {
b.draw(g,originX+x,originY-y,block_width,block_height,launched);

@ -126,8 +126,20 @@ public class Board {
//System.out.println(blocks.getSortedBlocksOnRow(y));
List<Block> blockList = blocks.getSortedBlocksOnRow(y);
List<Block> markedBlocks = FindMatches(blockList,width,true);
int ourY = 0;
if (markedBlocks.size()>0) { //Ignite these blocks.
System.out.println("Marked: "+markedBlocks);
//Get all blocks above us. We will be taking all of these out of the current block clump and making a new one.
List<Block> newClumpList = new ArrayList<Block>();
for (Block b : markedBlocks) { //Get all blocks above this set.
newClumpList.addAll(blocks.getBlocks().stream().filter((block)->block.x==b.x&&block.y>b.y).collect(Collectors.toList()));
b.state = BlockState.IGNITED;
ourY=b.y;
}
newClumpList.addAll(markedBlocks);
BlockClump newClump = new BlockClump(newClumpList,0,blocks.y+ourY*block_height,launch_power,width,120);
blocks.removeBlock(markedBlocks.toArray(new Block[markedBlocks.size()]));
blockClumpAddList.add(newClump);
//System.out.println("Marked: "+markedBlocks);
}
}
for (int x=0;x<width;x++) {

Loading…
Cancel
Save