Game - dartfmt

This commit is contained in:
Marty Oehme 2018-07-20 16:28:12 +02:00
parent 828b39c1d0
commit cc1d3ac4da

View file

@ -16,27 +16,30 @@ class Game {
bool _fwd = true; bool _fwd = true;
Game(CanvasElement this.canvas) { Game(CanvasElement this.canvas) {
grid = buildGrid(5, 5, new Color(255, 0, 255)); grid = _buildGrid(5, 5, new Color(255, 0, 255));
ctx = this.canvas.getContext('2d'); ctx = this.canvas.getContext('2d');
} }
// In-World Logic Updates
void update([num dt]) { void update([num dt]) {
int ry = rng.nextInt(grid.length); int ry = rng.nextInt(grid.length);
grid[ry][rng.nextInt(grid[ry].length)] = new Color(rng.nextInt(255), rng.nextInt(255), rng.nextInt(255)); grid[ry][rng.nextInt(grid[ry].length)] = new Color(rng.nextInt(255), rng.nextInt(255), rng.nextInt(255));
} }
// Render Pipeline
void draw([num interp]) { void draw([num interp]) {
int brickW = (canvas.width ~/ grid[0].length); int brickW = (canvas.width ~/ grid[0].length);
int brickH = (canvas.height ~/ grid.length); int brickH = (canvas.height ~/ grid.length);
ctx.clearRect(0, 0, canvas.width, canvas.height); ctx.clearRect(0, 0, canvas.width, canvas.height);
grid_foreach((x, y) { _grid_foreach((x, y) {
Color col = _oscillate(grid[y][x]); Color col = _oscillate(grid[y][x]);
ctx.setFillColorRgb(col.r, col.g, col.b); ctx.setFillColorRgb(col.r, col.g, col.b);
ctx.fillRect(x*brickW, y*brickH, brickW, brickH); ctx.fillRect(x*brickW, y*brickH, brickW, brickH);
}); });
} }
// Slightly oscillating colors to highlight rendering updates
Color _oscillate(Color col) { Color _oscillate(Color col) {
if(_oscill >= 50.0 || _oscill <= -50.0) { if(_oscill >= 50.0 || _oscill <= -50.0) {
_oscillDir = !_oscillDir; _oscillDir = !_oscillDir;
@ -48,7 +51,7 @@ class Game {
return new Color(col.r + o, col.g + o, col.b + o); return new Color(col.r + o, col.g + o, col.b + o);
} }
void grid_foreach(gridIterator fun) { void _grid_foreach(gridIterator fun) {
for (int y = 0; y < grid.length; y++) { for (int y = 0; y < grid.length; y++) {
for (int x = 0; x < grid[y].length; x++) { for (int x = 0; x < grid[y].length; x++) {
fun(x, y); fun(x, y);
@ -56,7 +59,7 @@ class Game {
} }
} }
List<List<Color>> buildGrid(int w, int h, Color col) { List<List<Color>> _buildGrid(int w, int h, Color col) {
List<List<Color>> grid = new List(h); List<List<Color>> grid = new List(h);
for (int y = 0; y < h; y++) { for (int y = 0; y < h; y++) {
grid[y] = new List(w); grid[y] = new List(w);
@ -75,8 +78,3 @@ class Color {
const Color(this.r, this.g, this.b); const Color(this.r, this.g, this.b);
} }
// Create 2d array
// fill with random colors
// cycle colors
// set one color to random new one