首页 > 代码库 > JAVA SE 框架之俄罗斯方块的效果
JAVA SE 框架之俄罗斯方块的效果
Mygame
package com.sun.c;import java.awt.event.KeyListener;import com.sun.v.MyJpanel;import com.sun.v.Myjframe;public class Mygame { public Mygame() { // TODO Auto-generated constructor stub } public static void main(String[] args) { // TODO Auto-generated method stub Myjframe jframe = new Myjframe(); MyJpanel panel = new MyJpanel(); jframe.add(panel); jframe.addKeyListener(panel); }}
Myjframe
package com.sun.v;import javax.swing.JFileChooser;import javax.swing.JFrame;/* * 这里采用MVC的设计模式,讲逻辑和页面分开, */public class Myjframe extends JFrame{ public Myjframe(){ this.setTitle("myworld"); this.setVisible(true); this.setSize(400,400); this.setDefaultCloseOperation(this.EXIT_ON_CLOSE); } }
MyJpanel
package com.sun.v;import java.awt.Graphics;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;import javax.swing.JPanel;import com.sun.m.Dog;public class MyJpanel extends JPanel implements KeyListener,Runnable{ public MyJpanel() { //MyJpanel jp = new MyJpanel(); Thread td = new Thread(this); td.start(); } Dog dog = new Dog(20,20,2); public void paint(Graphics g){ super.paint(g); g.draw3DRect(dog.x, dog.y,20 ,20, false); } @Override public void keyTyped(KeyEvent e) { // TODO Auto-generated method stub } @Override public void keyPressed(KeyEvent e) { // TODO Auto-generated method stub //System.out.println("sunzhiyan"); switch (e.getKeyCode()){ case KeyEvent.VK_W: dog.direct = 0; dog.move(dog.direct); break; case KeyEvent.VK_D: dog.direct = 1; dog.move(dog.direct); break; case KeyEvent.VK_S: dog.direct = 2; dog.move(dog.direct); break; case KeyEvent.VK_A: dog.direct = 3; dog.move(dog.direct); break; } this.repaint(); } @Override public void keyReleased(KeyEvent e) { // TODO Auto-generated method stub } @Override public void run() { // TODO Auto-generated method stub while(true){ try { Thread.sleep(1000); //System.out.println("我被调用了"); dog.direct = 2; dog.move(dog.direct); this.repaint(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }}
Dog
1 package com.sun.m; 2 3 public class Dog { 4 public int x; 5 public int y; 6 public int direct ; 7 public Dog(int x,int y, int direct){ 8 this.x = x; 9 this.y = y;10 this.direct = direct;11 }12 public void move(int direct){13 switch (direct){ 14 case 0:15 this.y--;16 break;17 case 1:18 this.x++;19 break;20 case 2:21 this.y++;22 break;23 case 3:24 this.x--;25 break; 26 }27 28 }29 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。