|
@@ -3,13 +3,17 @@ package edu.stuy.goldfish; |
|
|
import java.awt.Canvas;
|
|
|
import java.awt.Canvas;
|
|
|
import java.awt.Dimension;
|
|
|
import java.awt.Dimension;
|
|
|
import java.awt.Graphics;
|
|
|
import java.awt.Graphics;
|
|
|
|
|
|
import java.awt.event.MouseEvent;
|
|
|
|
|
|
import java.awt.event.MouseListener;
|
|
|
|
|
|
import java.awt.event.MouseMotionListener;
|
|
|
import java.awt.image.BufferStrategy;
|
|
|
import java.awt.image.BufferStrategy;
|
|
|
import java.awt.image.BufferedImage;
|
|
|
import java.awt.image.BufferedImage;
|
|
|
import java.awt.image.DataBufferInt;
|
|
|
import java.awt.image.DataBufferInt;
|
|
|
|
|
|
|
|
|
import javax.swing.JFrame;
|
|
|
import javax.swing.JFrame;
|
|
|
|
|
|
|
|
|
public class Render extends Canvas implements Runnable {
|
|
|
|
|
|
|
|
|
public class Render extends Canvas implements Runnable, MouseListener,
|
|
|
|
|
|
MouseMotionListener {
|
|
|
private static final long serialVersionUID = 1L;
|
|
|
private static final long serialVersionUID = 1L;
|
|
|
|
|
|
|
|
|
public static String title = "Goldfish";
|
|
|
public static String title = "Goldfish";
|
|
@@ -25,12 +29,15 @@ public class Render extends Canvas implements Runnable { |
|
|
private long _last_tick;
|
|
|
private long _last_tick;
|
|
|
|
|
|
|
|
|
public Render(int width, int height, Grid g) {
|
|
|
public Render(int width, int height, Grid g) {
|
|
|
|
|
|
addMouseListener(this);
|
|
|
|
|
|
addMouseMotionListener(this);
|
|
|
Render.width = width;
|
|
|
Render.width = width;
|
|
|
Render.height = height;
|
|
|
Render.height = height;
|
|
|
setScale();
|
|
|
setScale();
|
|
|
_grid = g;
|
|
|
_grid = g;
|
|
|
_image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
|
|
|
_image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
|
|
|
_pixels = ((DataBufferInt) _image.getRaster().getDataBuffer()).getData();
|
|
|
|
|
|
|
|
|
_pixels = ((DataBufferInt) _image.getRaster().getDataBuffer())
|
|
|
|
|
|
.getData();
|
|
|
_last_tick = 0;
|
|
|
_last_tick = 0;
|
|
|
Dimension size = new Dimension(width * scale, height * scale);
|
|
|
Dimension size = new Dimension(width * scale, height * scale);
|
|
|
setPreferredSize(size);
|
|
|
setPreferredSize(size);
|
|
@@ -104,8 +111,7 @@ public class Render extends Canvas implements Runnable { |
|
|
if (since < 1000 / max_fps) {
|
|
|
if (since < 1000 / max_fps) {
|
|
|
try {
|
|
|
try {
|
|
|
Thread.sleep(1000 / max_fps - since);
|
|
|
Thread.sleep(1000 / max_fps - since);
|
|
|
}
|
|
|
|
|
|
catch (InterruptedException e) {
|
|
|
|
|
|
|
|
|
} catch (InterruptedException e) {
|
|
|
return;
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -119,4 +125,40 @@ public class Render extends Canvas implements Runnable { |
|
|
public void draw(int x, int y, int color) {
|
|
|
public void draw(int x, int y, int color) {
|
|
|
_pixels[x + y * width] = color;
|
|
|
_pixels[x + y * width] = color;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
public void mouseDragged(MouseEvent e) {
|
|
|
|
|
|
_grid.getPatch(e.getX() / scale, e.getY() / scale).setState(1);
|
|
|
|
|
|
draw(e.getX() / scale, e.getY() / scale, 0xffffff);
|
|
|
|
|
|
e.consume();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
public void mouseClicked(MouseEvent e) {
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
public void mouseEntered(MouseEvent e) {
|
|
|
|
|
|
// TODO Auto-generated method stub
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
public void mouseExited(MouseEvent e) {
|
|
|
|
|
|
// TODO Auto-generated method stub
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
public void mousePressed(MouseEvent e) {
|
|
|
|
|
|
// TODO Auto-generated method stub
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
public void mouseReleased(MouseEvent e) {
|
|
|
|
|
|
// TODO Auto-generated method stub
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
public void mouseMoved(MouseEvent e) {
|
|
|
|
|
|
// TODO Auto-generated method stub
|
|
|
|
|
|
}
|
|
|
}
|
|
|
}
|