1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
| import java.awt.*; import java.awt.event.KeyEvent; import java.awt.image.BufferStrategy; import javax.swing.*;
public class Game extends JFrame implements Runnable { final int SCREEN_WIDTH = 320; final int SCREEN_HEIGHT = 240; final int BIT_DEPTH = 16; final int REFRESH_RATE = 60; final int FPS = 60; float y,x,dx,dy; Image img1; public static void main(String[] args){ new Game().init(false); } void init(boolean fullscreen){ setTitle("test"); GraphicsConfiguration gc = getGraphicsConfiguration(); GraphicsDevice gd = gc.getDevice(); if(fullscreen) { setUndecorated(true); gd.setFullScreenWindow(this); gd.setDisplayMode(new DisplayMode(SCREEN_WIDTH,SCREEN_HEIGHT,BIT_DEPTH, REFRESH_RATE)); } else { setBounds(0,0,SCREEN_WIDTH,SCREEN_HEIGHT); setVisible(true); } Image cursorImage = Toolkit.getDefaultToolkit().getImage("sprites/transparent.gif"); Cursor blankCursor = Toolkit.getDefaultToolkit().createCustomCursor(cursorImage, new Point( 0, 0), "" ); setCursor( blankCursor ); setResizable(false); setIgnoreRepaint(true);
img1 = loadImage("test.png"); x = 40; y = 50; dx = 1;
Thread t = new Thread(this); t.start(); } public Image loadImage(String filename){ return new ImageIcon("images/"+filename).getImage(); } public void run(){ final int NANO_FRAME_LENGTH = 1000000000/FPS; long startTime = System.nanoTime(); int frameCount = 0;
while(true) { BufferStrategy bs = getBufferStrategy(); Graphics2D g = (Graphics2D)bs.getDrawGraphics(); if(x < 0 || x > 320)dx = -dx; x += dx; g.setColor(Color.BLUE); g.fillRect(0,0,SCREEN_WIDTH,SCREEN_HEIGHT); g.drawImage(img1,Math.round(x),Math.round(y),null); bs.show(); frameCount++; while((System.nanoTime()-startTime)/NANO_FRAME_LENGTH <frameCount) { Thread.yield(); } } } } |