Tetris/Java: Difference between revisions
Content added Content deleted
m (each Shape should just have one shape) |
m (turn previewOffsets into EnumMap) |
||
Line 6: | Line 6: | ||
import java.util.Arrays; |
import java.util.Arrays; |
||
import java.util.Random; |
import java.util.Random; |
||
import java.util.EnumMap; |
|||
import javax.swing.*; |
import javax.swing.*; |
||
Line 209: | Line 210: | ||
// preview |
// preview |
||
int idx = preSelectedShape.ordinal(); |
int idx = preSelectedShape.ordinal(); |
||
int offsetX = Config. |
int offsetX = Config.previewOffsets.get(preSelectedShape)[0] + 15 * blockSize; |
||
int offsetY = Config. |
int offsetY = Config.previewOffsets.get(preSelectedShape)[1] + 2 * blockSize; |
||
g.translate(offsetX, offsetY); |
g.translate(offsetX, offsetY); |
||
Line 466: | Line 467: | ||
private Shape(int[][] shape) { |
private Shape(int[][] shape) { |
||
this.shape = shape; |
|||
pos = new int[4][2]; |
pos = new int[4][2]; |
||
reset(); |
reset(); |
||
Line 485: | Line 486: | ||
// used for centering shapes in the preview pane |
// used for centering shapes in the preview pane |
||
final static int[] |
final static EnumMap<Shape, int[]> previewOffsets = new EnumMap<>(Shape.class); |
||
static { |
|||
{0, 0}, {-15, 5}, {16, 15}, {-15, 15}}; |
|||
previewOffsets.put(Shape.ZShape, new int[]{16, 15}); |
|||
previewOffsets.put(Shape.SShape, new int[]{-15, 15}); |
|||
previewOffsets.put(Shape.Straight, new int[]{0, 0}); |
|||
previewOffsets.put(Shape.TShape, new int[]{0, 0}); |
|||
previewOffsets.put(Shape.Square, new int[]{-15, 5}); |
|||
previewOffsets.put(Shape.LShape, new int[]{16, 15}); |
|||
previewOffsets.put(Shape.JShape, new int[]{-15, 15}); |
|||
} |
|||
final static Font mainFont = new Font("Monospaced", Font.BOLD, 48); |
final static Font mainFont = new Font("Monospaced", Font.BOLD, 48); |