Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.BorderLayout;
- import java.awt.Color;
- import java.awt.Graphics;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.awt.event.FocusEvent;
- import java.awt.event.FocusListener;
- import java.awt.event.KeyEvent;
- import java.awt.event.KeyListener;
- import java.awt.event.MouseAdapter;
- import java.awt.event.MouseEvent;
- import javax.swing.JFrame;
- import javax.swing.JPanel;
- import javax.swing.Timer;
- public class GamePanel {
- JFrame window;
- Player player;
- Color boardColor = new Color(100,200,255);
- Color playerColor = new Color(100,100,100);
- boolean upPressed = false;
- boolean downPressed = false;
- final int timerDelay = 20;
- public static void main(String[] args){
- GamePanel gameP = new GamePanel();
- }
- public GamePanel(){
- player = new Player();
- window = new JFrame("Simple Game");
- window.setSize(800, 400);
- window.setLocation(300, 150);
- window.setLayout(new BorderLayout());
- window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- GameField game = new GameField();
- game.setBackground(boardColor);
- window.add(game, BorderLayout.CENTER);
- window.setVisible(true);
- }
- private class Player{
- final int sizeX = 10;
- final int sizeY = 30;
- final int gunSizeX = sizeX/2;
- final int gunSizeY = sizeY/4;
- final int playerMoveSpeed = 10;
- int playerPositionX = 5;
- int playerPositionY = 200;
- int gunPositionX = 5 + sizeX;
- int gunPositionY = playerPositionY - 2;
- int bulletSpawnPositionX = gunPositionX + 10;
- public void update(){
- gunPositionX = 5 + sizeX;
- gunPositionY = playerPositionY - 2;
- bulletSpawnPositionX = gunPositionX + 10;
- if (upPressed){
- playerPositionY -= playerMoveSpeed;
- }
- else if (downPressed)
- playerPositionY += playerMoveSpeed;
- if (playerPositionY < (0 - (sizeY/2)))
- playerPositionY = (0 - (sizeY/2));
- else if (playerPositionY > window.getHeight() + (sizeY/2))
- playerPositionY = window.getHeight() + (sizeY/2);
- }
- public void draw(Graphics g){
- g.setColor(playerColor);
- g.fillRoundRect(playerPositionX, playerPositionY - (sizeY/2), sizeX, sizeY, 20, 20);
- g.fillRect(gunPositionX, gunPositionY, gunSizeX, gunSizeY);
- }
- }
- private class GameField extends JPanel{
- ActionListener timerAction;
- Timer animationTimer;
- public GameField(){
- addFocusListener(new FocusListener(){
- public void focusGained(FocusEvent e){
- animationTimer.start();
- }
- public void focusLost(FocusEvent e) {
- animationTimer.stop();
- }
- });
- addKeyListener(new KeyListener(){
- public void keyPressed(KeyEvent e) {
- if (e.getKeyCode() == KeyEvent.VK_UP)
- upPressed = true;
- if (e.getKeyCode() == KeyEvent.VK_DOWN)
- downPressed = true;
- }
- public void keyReleased(KeyEvent e) {
- if (e.getKeyCode() == KeyEvent.VK_UP)
- upPressed = false;
- if (e.getKeyCode() == KeyEvent.VK_DOWN)
- downPressed = false;
- }
- public void keyTyped(KeyEvent e) {}
- });
- timerAction = new ActionListener(){
- public void actionPerformed(ActionEvent e) {
- player.update();
- repaint();
- }
- };
- animationTimer = new Timer(timerDelay, timerAction);
- addMouseListener(new MouseAdapter(){
- public void mouseClicked(MouseEvent e){
- requestFocus();
- }
- });
- }
- public void paintComponent(Graphics g){
- super.paintComponent(g);
- player.draw(g);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement