// Allows you to move an image using the keyboard
// Written by WolfCoder 1-07-2005
import java.awt.event.*; // Use events
import java.awt.*; // Use graphics
import java.applet.*; // Use applets
import javax.swing.*; // Use swing stuff (GUI)
import java.util.*; // Use util
public class Keymove extends JApplet
{
public class DemoPanel extends JPanel
{
private Image testImage; // Image used for testing (16*16 pixels)
private int playerX = 0;
private int playerY = 0; // The player's current position in the applet
boolean key_right,key_left,key_down,key_up; // Input booleans
void DemoPanel()
{
// Does nothing here
}
public void gameInit()
{
testImage = getImage(getDocumentBase(),"testimg.gif"); // Load the test image
// Image note:
// The transparent color in the GIF file is the transparent color of the GIF in the Applet
setFocusable(true); // IMPORTANT IMPORTANT! This allows the KeyListener to work!!!
GameInput game_input = new GameInput(); // Make a new video game KeyListener
addKeyListener(game_input); // Add it to the JPanel
}
public void paintComponent(Graphics page)
{
super.paintComponent(page);
setBackground(Color.black); // Use a black background
page.drawImage(testImage,playerX,playerY,this); // Draw the image at player's position
if(key_down) // Move the player down
playerY++;
if(key_up) // Move the player up
playerY--;
if(key_right) // Move the player to the right
playerX++;
if(key_left) // Move the player to the left
playerX--;
for(int index = 0;index < 10000000;index++){} // Slow the Applet down to comfortable speeds
repaint(); // next frame...
}
private class GameInput implements KeyListener
{
public void keyTyped(KeyEvent e){}
public void keyReleased(KeyEvent e)
{
// Check using getKeyCode for all four directional keys!
if(e.getKeyCode() == e.VK_DOWN) // If down is released...
key_down = false;
if(e.getKeyCode() == e.VK_UP) // If up is released...
key_up = false;
// Ect...
if(e.getKeyCode() == e.VK_RIGHT)
key_right = false;
if(e.getKeyCode() == e.VK_LEFT)
key_left = false;
}
public void keyPressed(KeyEvent e)
{
// Check using getKeyCode for all four directional keys!
if(e.getKeyCode() == e.VK_DOWN) // If down is pressed...
key_down = true;
if(e.getKeyCode() == e.VK_UP) // If up is pressed...
key_up = true;
// Ect...
if(e.getKeyCode() == e.VK_RIGHT)
key_right = true;
if(e.getKeyCode() == e.VK_LEFT)
key_left = true;
}
}
}
public void init()
{
setSize(256,256);
DemoPanel demopanel = new DemoPanel(); // Make a new JPanel for the video demo
demopanel.gameInit(); // Call the game initialization function before adding the JPanel
getContentPane().add(demopanel); // Add the JPanel
}
}
Post a Comment