public class Puyo {
public int x, y, color;
public Puyo(int c, int x2, int y2) {
color = c;
x = x2;
y = y2;
}
}
import javax.swing.*;
import java.awt.*;
public class DemoTest extends JPanel {
public static void main(String[] args) { {
JFrame frame = new JFrame("Puyo Puyo");
frame.setContentPane(new PuyoAnimation());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setSize(200,453);
frame.setResizable(false);
frame.setVisible(true);
}
}
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.util.Random;
public class PuyoLogic extends JPanel {
public static final int puyoEmpty=0;
final int board_height = 12;
final int board_width = 6;
final int image_height= 32;
final int image_width = 32;
final int MAX_X = board_width*image_width;
final int MAX_Y = board_height*image_height;
private static final int DELTA_Y = 2;
private static final int TIMER_DELAY = 20;
Image images[];
Puyo puyolist[][];
Puyo current[];
Puyo droppingBalls[];
Timer pptimer;
Random myRand= new Random();
boolean keyRight,keyLeft,keyUp;
public PuyoLogic() {
super();
puyolist = new Puyo[board_width][board_height];
current = new Puyo[2];
current[0] = new Puyo(myRand.nextInt(4), (board_width * image_width /2), 0);
current[1] = new Puyo(myRand.nextInt(4), (board_width * image_width /2)+image_width, 0);
// current[2] = new Puyo(myRand.nextInt(4), (board_width * image_width /2), 0);
// current[3] = new Puyo(myRand.nextInt(4), (board_width * image_width /2)+image_width, 0);
images = new Image[4];
images[0] = Toolkit.getDefaultToolkit().getImage("puyo_yellow.png");
images[1] = Toolkit.getDefaultToolkit().getImage("puyo_blue.png");
images[2] = Toolkit.getDefaultToolkit().getImage("puyo_green.png");
images[3] = Toolkit.getDefaultToolkit().getImage("puyo_red.png");
setFocusable(true);
PuyoMove puyo_move = new PuyoMove(); // Make a new video game KeyListener
addKeyListener(puyo_move);
setBackground(Color.BLACK);
pptimer = new Timer(TIMER_DELAY, new TimerAction());
pptimer.start();
}
public void setAnimation(boolean OnandOff){
if (OnandOff) {
pptimer.start();
} else {
pptimer.stop();
}
}
public void NewBlock() {
int newblock;
int i,j;
for(i=0; i<4; i++)
for(j=0; j<4; j++)
//puyolist[i][j] = new Puyo[2];
current[0].x=board_width/2-2;
current[0].y=0;
}
public void puyoBoundsRight(Puyo[] current){
if ((current[0].x + image_width <= MAX_X - image_width) && (current[1].x + image_width <= MAX_X - image_width)){
current[0].x += image_width;
current[1].x += image_width;
}
}
public void puyoBoundsLeft(Puyo[] current){
if ((current[0].x - image_width >= 0) && (current[1].x - image_width >= 0)){
current[0].x -= image_width;
current[1].x -= image_width;
}
}
private class PuyoMove implements KeyListener {
public void keyTyped(KeyEvent k){}
public void keyReleased(KeyEvent k){}
public void keyPressed(KeyEvent k){
switch (k.getKeyCode()){
case KeyEvent.VK_LEFT:
keyLeft = true;
break;
case KeyEvent.VK_RIGHT:
keyRight = true;
break;
}
}
}
public void paintComponent(Graphics g){
super.paintComponent(g);
g.drawImage(images[current[0].color],current[0].x,current[0].y,this);
g.drawImage(images[current[1].color],current[1].x,current[1].y,this);
// g.drawImage(images[current[2].color],current[2].x,current[2].y,this);
//g.drawImage(images[current[3].color],current[3].x,current[3].y,this);
}
class TimerAction implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (keyLeft){
puyoBoundsLeft(current);
keyLeft = false;
}
else if (keyRight) {
puyoBoundsRight(current);
keyRight = false;
}
if (current[0].y + image_height <= MAX_Y && current[1].y + image_height <= MAX_Y)
{
current[0].y += DELTA_Y;
current[1].y += DELTA_Y;
}
else {
setAnimation(false);
}
repaint();
}
}
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
class PuyoAnimation extends JPanel {
PuyoLogic pl;
public PuyoAnimation() {
pl = new PuyoLogic();
JButton startButton = new JButton("Start");
JButton stopButton = new JButton("Stop");
startButton.addActionListener(new Start());
stopButton.addActionListener(new Stop());
JPanel button = new JPanel();
button.setLayout(new FlowLayout());
button.add(startButton);
button.add(stopButton);
this.setLayout(new BorderLayout());
this.add(button, BorderLayout.SOUTH);
this.add(pl,BorderLayout.CENTER);
}
class Start implements ActionListener {
public void actionPerformed(ActionEvent e) {
pl.setAnimation(true);
}
}
class Stop implements ActionListener {
public void actionPerformed(ActionEvent e) {
pl.setAnimation(false);
}
}
}//endclass

New Topic/Question
Reply




MultiQuote


|