Show Posts
|
|
Pages: [1] 2
|
|
6
|
Game Development / Game Mechanics / Re: Using BufferStrategy But Still Got Flicker
|
on: 2012-05-11 20:30:06
|
It's unique that you use int for delta. Show us your class code that moving.
This is the movement code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| public void keyPressed(KeyEvent key) { switch (key.getKeyCode()) { case KeyEvent.VK_ESCAPE: System.exit(0); break; case KeyEvent.VK_W: Planetoids.yOffs += Player.moveSpeed; break; case KeyEvent.VK_S: Planetoids.yOffs -= Player.moveSpeed; break; case KeyEvent.VK_A: Planetoids.xOffs += Player.moveSpeed; break; case KeyEvent.VK_D: Planetoids.xOffs -= Player.moveSpeed; break; } |
|
|
|
|
|
9
|
Game Development / Game Mechanics / Using BufferStrategy But Still Got Flicker
|
on: 2012-05-10 20:32:14
|
Hi, I am using the game loop in the tutorial basic game, which uses BufferStrategy, but when I render my world I still get flicker. If any one could help I would appreciate it. Loop source code: 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 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
| public class Planetoids implements Runnable {
public static int xOffs = 0, yOffs = 0;
public final int WIDTH = 800; public final int HEIGHT = 600;
private PlanetEarth earth;
private JFrame frame; private Canvas canvas; private BufferStrategy bufferStrategy;
public Planetoids() { frame = new JFrame("Planetoids Pre-Alpha 0.0.1");
JPanel panel = (JPanel) frame.getContentPane(); panel.setPreferredSize(new Dimension(WIDTH, HEIGHT)); panel.setLayout(null);
canvas = new Canvas(); canvas.setBounds(0, 0, WIDTH, HEIGHT); canvas.setIgnoreRepaint(true);
panel.add(canvas);
canvas.addKeyListener(new InputManager());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); frame.setResizable(false); frame.setVisible(true); frame.setLocationRelativeTo(null);
canvas.createBufferStrategy(2); bufferStrategy = canvas.getBufferStrategy();
canvas.requestFocus(); init(); }
private void init() { earth = new PlanetEarth(30,30); earth.map = PlanetGenerator.loadMap(30, 30); }
long desiredFPS = 60; long desiredDeltaLoop = (1000 * 1000 * 1000) / desiredFPS;
boolean running = true;
public void run() {
long beginLoopTime; long endLoopTime; long currentUpdateTime = System.nanoTime(); long lastUpdateTime; long deltaLoop;
while (running) { beginLoopTime = System.nanoTime();
render();
lastUpdateTime = currentUpdateTime; currentUpdateTime = System.nanoTime(); update((int) ((currentUpdateTime - lastUpdateTime) / (1000 * 1000)));
endLoopTime = System.nanoTime(); deltaLoop = endLoopTime - beginLoopTime;
if (deltaLoop > desiredDeltaLoop) { } else { try { Thread.sleep((desiredDeltaLoop - deltaLoop) / (1000 * 1000)); } catch (InterruptedException e) { } } } }
private void render() { Graphics g = bufferStrategy.getDrawGraphics(); g.clearRect(0, 0, WIDTH, HEIGHT); render(g); g.dispose(); bufferStrategy.show(); }
protected void update(int deltaTime) {
}
protected void render(Graphics g) { earth.render(g); }
public static void main(String[] args) { Planetoids ex = new Planetoids(); new Thread(ex).start(); }
} |
The world render code: 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
| public void render(Graphics g) { super.render(g); int x = 0, y = 0; for (int i = 0; i < map.length; i++) { if (x == width) { x = 0; y += 1; } switch (map[i]) { case Tile.TILE_EARTH_DIRT: g.drawImage(Tile.TILE_EARTH_DIRT_IMG, x * 32 + Planetoids.xOffs, y * 32 + Planetoids.yOffs, 32, 32, null); break; case Tile.TILE_EARTH_GRASS: g.drawImage(Tile.TILE_EARTH_GRASS_IMG, x * 32 + Planetoids.xOffs, y * 32 + Planetoids.yOffs, 32, 32, null); break; case Tile.TILE_EARTH_STONE: g.drawImage(Tile.TILE_EARTH_STONE_IMG, x * 32 + Planetoids.xOffs, y * 32 + Planetoids.yOffs, 32, 32, null); break; case Tile.TILE_EARTH_SAND: g.drawImage(Tile.TILE_EARTH_SAND_IMG, x * 32 + Planetoids.xOffs, y * 32 + Planetoids.yOffs, 32, 32, null); break; } x++; } } |
Max
|
|
|
|
|
10
|
Game Development / Game Mechanics / Re: JFrame KeyListener Problem
|
on: 2012-04-21 15:45:24
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| package uk.co.maxkingstudios.ld23;
import javax.swing.JFrame;
public class Display extends JFrame {
private static final long serialVersionUID = 1L;
public Display() { setSize(640, 480); setTitle("Ludum Dare 23: "); setVisible(true); setResizable(false); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); createBufferStrategy(2); Game game = new Game(this.getBufferStrategy()); add(game); }
public static void main(String[] args) { new Display(); } } |
This is the JFrame class
|
|
|
|
|
12
|
Game Development / Game Mechanics / Re: JFrame KeyListener Problem
|
on: 2012-04-21 15:09:00
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| public class InputManager extends KeyAdapter{
public void keyPressed(KeyEvent key) { System.out.println(key.getKeyChar()); }
public void keyReleased(KeyEvent key) { System.out.println(key.getKeyChar()); }
public void keyTyped(KeyEvent key) { System.out.println(key.getKeyChar()); } } |
This is just to test it
|
|
|
|
|
14
|
Game Development / Game Mechanics / JFrame KeyListener Problem
|
on: 2012-04-21 10:38:06
|
Hi, My KeyListner is not working for my JFrame and JPanel and I can't work out why. I am using the exact code that has worked for me before Please help! Here is the JFrame 1 2 3 4 5 6 7 8 9 10 11 12 13
| public Display() { setSize(640, 480); setTitle("Ludum Dare 23: "); setVisible(true); setResizable(false); setDefaultCloseOperation(EXIT_ON_CLOSE); setLocationRelativeTo(null); createBufferStrategy(2); Game game = new Game(this.getBufferStrategy()); setFocusable(true); addKeyListener(new InputManager()); add(game); } |
Max
|
|
|
|
|
29
|
Game Development / Game Mechanics / [Help] Perlin Noise for 2d tile game
|
on: 2012-04-08 16:18:23
|
|
Hello all, I am at the moment building a top-down 2d tile rpg like game. I am currently rendering from a set map defined in a seperate file. I would like to be able to generate a world so it looks realistic but generates fast and is easy to add to later (e.g. add more tiles later to generate in subsequent updates). I have heard of perlin noise generation, but would to know your advice and how i can use it
Max
|
|
|
|
|
|
Add your game by posting it in the WIP section,
or publish it in Showcase.
The first screenshot will be displayed as a thumbnail.
|
|