about summary refs log tree commit diff stats
path: root/src/com/fourisland
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/fourisland')
-rw-r--r--src/com/fourisland/frigidearth/Main.java72
1 files changed, 68 insertions, 4 deletions
diff --git a/src/com/fourisland/frigidearth/Main.java b/src/com/fourisland/frigidearth/Main.java index 4301118..2e320cc 100644 --- a/src/com/fourisland/frigidearth/Main.java +++ b/src/com/fourisland/frigidearth/Main.java
@@ -4,6 +4,11 @@
4 */ 4 */
5package com.fourisland.frigidearth; 5package com.fourisland.frigidearth;
6 6
7import java.awt.Color;
8import java.awt.Graphics;
9import java.awt.event.ComponentAdapter;
10import java.awt.event.ComponentEvent;
11import java.util.Random;
7import javax.swing.JFrame; 12import javax.swing.JFrame;
8 13
9/** 14/**
@@ -14,14 +19,73 @@ public class Main
14{ 19{
15 static final int GAME_WIDTH = 15; 20 static final int GAME_WIDTH = 15;
16 static final int GAME_HEIGHT = 10; 21 static final int GAME_HEIGHT = 10;
17 static final int TILE_WIDTH = 32; 22 static int TILE_WIDTH = 32;
18 static final int TILE_HEIGHT = 32; 23 static int TILE_HEIGHT = 32;
24
25 private static JFrame mainWindow;
26 private static Color[][] grid;
27 private static int drawOffsetX = 0;
28 private static int drawOffsetY = 0;
19 29
20 public static void main(String[] args) 30 public static void main(String[] args)
21 { 31 {
22 JFrame mainWindow = new JFrame("Frigid Earth"); 32 mainWindow = new JFrame("Frigid Earth");
23 mainWindow.setSize(GAME_WIDTH*TILE_WIDTH, GAME_HEIGHT*TILE_HEIGHT); 33 mainWindow.setSize(GAME_WIDTH*TILE_WIDTH, GAME_HEIGHT*TILE_HEIGHT + mainWindow.getInsets().top);
24 mainWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 34 mainWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
35 mainWindow.addComponentListener(new ComponentAdapter() {
36 @Override
37 public void componentResized(ComponentEvent ce)
38 {
39 drawOffsetX = 0;
40 drawOffsetY = 0;
41
42 TILE_WIDTH = mainWindow.getContentPane().getWidth() / GAME_WIDTH;
43 drawOffsetX = mainWindow.getWidth() % GAME_WIDTH / 2;
44 TILE_HEIGHT = mainWindow.getContentPane().getHeight() / GAME_HEIGHT;
45 drawOffsetY = mainWindow.getHeight() % GAME_HEIGHT / 2;
46
47 if (TILE_WIDTH > TILE_HEIGHT)
48 {
49 TILE_WIDTH = TILE_HEIGHT;
50 drawOffsetX = (mainWindow.getContentPane().getWidth() - (GAME_WIDTH * TILE_WIDTH)) / 2;
51 } else if (TILE_HEIGHT > TILE_WIDTH)
52 {
53 TILE_HEIGHT = TILE_WIDTH;
54 drawOffsetY = (mainWindow.getContentPane().getHeight() - (GAME_HEIGHT * TILE_HEIGHT)) / 2;
55 }
56
57 redrawScreen();
58 }
59 });
25 mainWindow.setVisible(true); 60 mainWindow.setVisible(true);
61
62 Random r = new Random();
63 grid = new Color[GAME_WIDTH][GAME_HEIGHT];
64
65 for (int x=0; x<GAME_WIDTH; x++)
66 {
67 for (int y=0; y<GAME_HEIGHT; y++)
68 {
69 grid[x][y] = new Color(r.nextInt(256), r.nextInt(256), r.nextInt(256));
70 }
71 }
72
73 redrawScreen();
74 }
75
76 private static void redrawScreen()
77 {
78 Graphics g = mainWindow.getGraphics();
79 g.setColor(Color.black);
80 g.fillRect(0, 0, mainWindow.getWidth(), mainWindow.getHeight());
81
82 for (int x=0; x<GAME_WIDTH; x++)
83 {
84 for (int y=0; y<GAME_HEIGHT; y++)
85 {
86 g.setColor(grid[x][y]);
87 g.fillRect(x*TILE_WIDTH + drawOffsetX, y*TILE_HEIGHT + drawOffsetY + mainWindow.getInsets().top, TILE_WIDTH, TILE_HEIGHT);
88 }
89 }
26 } 90 }
27} 91}