Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package tetris;
- import java.awt.*;
- import java.awt.event.*;
- import javax.swing.*;
- public class TetrisPanel extends JPanel {
- private final int WIDTH = 1000, HEIGHT = 800, JUMP = 10;
- private ImageIcon red, green, winGreen, winRed, currentRed,
- currentGreen, tankUp, tankDown, tankLeft, tankRight, redUp,
- redDown, redLeft, redRight;
- private int x, y, xx, yy, xxx, yyy, redWin, greenWin, range,
- startingValuesRedXY, startingValuesGreenX, startingValuesGreenY;
- private String direction;
- public TetrisPanel() {
- addKeyListener(new DirectionListener());
- startingValuesRedXY = 20;
- startingValuesGreenX = 930;
- startingValuesGreenY = 730;
- x = startingValuesRedXY;
- y = startingValuesRedXY;
- xx = startingValuesGreenX;
- yy = startingValuesGreenY;
- redWin = 0;
- greenWin = 0;
- String winReds = Integer.toString(redWin);
- String winGreens = Integer.toString(greenWin);
- System.out.print(redWin + winReds);
- range = 60;
- red = new ImageIcon("square.gif");
- green = new ImageIcon("green.gif");
- winGreen = new ImageIcon("wingreen.gif");
- winRed = new ImageIcon("winred.gif");
- tankUp = new ImageIcon("tankUp.gif");
- tankDown = new ImageIcon("tankDown.gif");
- tankLeft = new ImageIcon("tankLeft.gif");
- tankRight = new ImageIcon("tankRight.gif");
- redUp = new ImageIcon("redUp.gif");
- redDown = new ImageIcon("redDown.gif");
- redLeft = new ImageIcon("redLeft.gif");
- redRight = new ImageIcon("redRight.gif");
- currentGreen = tankUp;
- currentRed = redDown;
- setBackground(Color.WHITE);
- setPreferredSize(new Dimension(WIDTH, HEIGHT));
- setFocusable(true);
- Timer time = new Timer(7, taskPerformer);
- time.start();
- }
- ActionListener taskPerformer = new ActionListener() {
- public void actionPerformed(ActionEvent evt) {
- if (currentRed != winRed) {
- if (xx > x) {
- x += 1;
- currentRed = redRight;
- }
- else {
- x -= 1;
- currentRed = redLeft;
- }
- if (yy > y) {
- y += 1;
- currentRed = redDown;
- }
- else {
- y -= 1;
- currentRed = redUp;
- }
- }
- repaint();
- }
- };
- @Override public void paintComponent(Graphics page) {
- super.paintComponent(page);
- currentRed.paintIcon(this, page, x, y);
- currentGreen.paintIcon(this, page, xx, yy);
- }
- private class DirectionListener implements KeyListener {
- public void keyPressed(KeyEvent event) {
- switch (event.getKeyCode()) {
- case KeyEvent.VK_UP:
- if (y >= 10)
- y -= JUMP;
- if (currentRed != winRed)
- currentRed = redUp;
- if ((xx - range) < x && x < (xx + range) && (yy - range) < y
- && y < (yy + range)) {
- currentRed = winRed;
- redWin++;
- x = 300;
- y = 200;
- }
- break;
- case KeyEvent.VK_DOWN:
- if (y <= 740)
- y += JUMP;
- if (currentRed != winRed)
- currentRed = redDown;
- if ((xx - range) < x && x < (xx + range) && (yy - range) < y
- && y < (yy + range)) {
- currentRed = winRed;
- redWin++;
- x = 300;
- y = 200;
- }
- break;
- case KeyEvent.VK_LEFT:
- if (x >= 10)
- x -= JUMP;
- if (currentRed != winRed)
- currentRed = redLeft;
- if ((xx - range) < x && x < (xx + range) && (yy - range) < y
- && y < (yy + range)) {
- currentRed = winRed;
- redWin++;
- x = 300;
- y = 200;
- }
- break;
- case KeyEvent.VK_RIGHT:
- if (x <= 940)
- x += JUMP;
- if (currentRed != winRed)
- currentRed = redRight;
- if ((xx - range) < x && x < (xx + range) && (yy - range) < y
- && y < (yy + range)) {
- currentRed = winRed;
- redWin++;
- x = 300;
- y = 200;
- }
- break;
- case KeyEvent.VK_W:
- if (yy >= 10)
- yy -= JUMP;
- currentGreen = tankUp;
- if ((xx - 65) < x && x < (xx + 65) && (yy - 65) < y
- && y < (yy + 65)) {
- currentRed = winRed;
- redWin++;
- x = 300;
- y = 200;
- }
- break;
- case KeyEvent.VK_S:
- if (yy <= 740)
- yy += JUMP;
- currentGreen = tankDown;
- if ((xx - 65) < x && x < (xx + 65) && (yy - 65) < y
- && y < (yy + 65)) {
- currentRed = winRed;
- redWin++;
- x = 300;
- y = 200;
- }
- break;
- case KeyEvent.VK_A:
- if (xx >= 10)
- xx -= JUMP;
- currentGreen = tankLeft;
- if ((xx - 65) < x && x < (xx + 65) && (yy - 65) < y
- && y < (yy + 65)) {
- currentRed = winRed;
- redWin++;
- x = 300;
- y = 200;
- }
- break;
- case KeyEvent.VK_D:
- if (xx <= 940)
- xx += JUMP;
- currentGreen = tankRight;
- if ((xx - range) < x && x < (xx + range) && (yy - range) < y
- && y < (yy + range)) {
- currentRed = winRed;
- redWin++;
- x = 300;
- y = 200;
- }
- break;
- case KeyEvent.VK_SPACE:
- currentGreen = tankUp;
- currentRed = redDown;
- x = startingValuesRedXY;
- y = startingValuesRedXY;
- xx = startingValuesGreenX;
- yy = startingValuesGreenY;
- break;
- case KeyEvent.VK_E:
- if (currentGreen == tankUp)
- direction = "up";
- else if (currentGreen == tankDown)
- direction = "down";
- else if (currentGreen == tankRight)
- direction = "right";
- else if (currentGreen == tankLeft)
- direction = "left";
- new Bullet(direction, xx, yy);
- break;
- }
- repaint();
- }
- public void keyReleased(KeyEvent event) {
- }
- public void keyTyped(KeyEvent event) {
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement