博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA SE 框架之俄罗斯方块的效果
阅读量:6972 次
发布时间:2019-06-27

本文共 3211 字,大约阅读时间需要 10 分钟。

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 }
 

 

 

 

转载地址:http://ydisl.baihongyu.com/

你可能感兴趣的文章
PCIe闪存控制器技术解析
查看>>
基于范德蒙矩阵的Erasure code技术详解
查看>>
Skype for Business Server 2015-04-前端服务器-2-创建一个文件共享
查看>>
七天学会ASP.NET MVC (四)——用户授权认证问题
查看>>
PowerShell实现批量收集SCVMM中虚拟机IP-续
查看>>
可视化数据包分析工具-CapAnalysis
查看>>
怎样在Office Word中随心所欲设置多级项目符号
查看>>
云灾备平台:英方云初体验
查看>>
Linux下汇编调试器GDB的使用
查看>>
小公司如何部署实施Linux集群网站
查看>>
联想架构调整:智能手机业务很重要
查看>>
vlan后 出现 outlook 正在试图从服务器检索数据
查看>>
《.NET应用架构设计:原则、模式与实践》新书博客--试读-1.2 正确理解设计的含义...
查看>>
发挥整体解决方案的价值——独家专访富士通亚太区整合支持中心首席技术官周一平...
查看>>
金山称清理专家遭微软误杀:正积极协商解决
查看>>
Sql 增加字段(有些只能在ORACLE中运行)
查看>>
JAVA获取系统相关信息
查看>>
20个值得开发人员关注的jQuery技术网站和博客
查看>>
终于病了
查看>>
nsswitch.conf文件详解
查看>>