该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

this.speed = speed;

}

//创建坦克向4个方向运动的方法

public void goUp()

{

this.setDirect(0);

y -= speed;

}

public void goDown()

{

this.setDirect(1);

y += speed;

}

public void goLeft()

{

this.setDirect(2);

x -= speed;

}

public void goRight()

{

this.setDirect(3);

x += speed;

}

}

//开始定义详细的坦克类

class MyTank extends Tank

{

//坦克开火时创建一个子弹,并启动线程

Shot shot = null;

//构造函数,创建一个新对象

public MyTank(int x ,int y ,int color,int direct)

{

super(x,y,color,direct);

}

//开火的方法

public void fire()

{

//根据坦克的方向确定在哪个点画出子弹

switch(this.getDirect())

{

case 0:

shot = new Shot(this.getX()-1, this.getY()-23,0);

break;

case 1:

shot = new Shot(this.getX()-1, this.getY()+20,1);

break;

case 2:

shot = new Shot(this.getX()-23, this.getY()-1,2);

break;

case 3:

shot = new Shot(this.getX()+20, this.getY()-1,3);

break;

} //画出子弹后,启动子弹的线程

Thread t1 = new Thread(this.shot);

t1.start();

}

} //定义敌人类

class EnemyTank extends Tank

{

public EnemyTank(int x ,int y ,int color,int direct)

{

super(x,y,color,direct);

}

}

//开始定义JPanel类,开始画坦克

class MyJPanel extends JPanel

{

MyTank mt1 = null;

int size = 3;

Vector aa = new Vector();

//在构造方法里直接添加一个我的坦克对象,那么new panel时也吧new 坦克的任务完成了

public MyJPanel(MyTank mt1)

{

this.mt1=mt1;

//画敌人的坦克

for(int i=0;i

{

EnemyTank tmp = new EnemyTank((i+1)*50,50,0,1);

aa.add(tmp);

}

}

//重写paint方法,在里面初始化

public void paint(Graphics g)

{

//先初始化画笔,这句话必须写的

super.paint(g);

//开始画画了,先画出一块黑的屏幕出来,就是画出一个屏幕那么大的黑块

g.setColor(Color.BLACK);

g.fillRect(0, 0, 500, 500);

this.drawTank(mt1.getX(), mt1.getY(), g, mt1.getColor(), mt1.getDirect());

this.drawShot(g);

for(int i =0;i

{

this.drawTank(aa.get(i).getX(), aa.get(i).getY(), g,aa.get(i).getColor(),aa.get(i).getDirect());

}

}

//把话坦克的内容封装成一个方法,在这直接添加

//开始写画坦克的程序了

public void drawTank(int x,int y,Graphics g ,int color,int direct)

{

//选择颜色

switch(color)

{

case 0:

g.setColor(Color.BLUE);

break;

case 1:

g.setColor(Color.YELLOW);

break;

}

//0上 1下 2左 3右

switch(direct)

{

case 0:

g.fill3DRect(x-15, y-15, 5, 30,false);

g.fill3DRect(x-10,y-10,20,20,false);

g.fill3DRect(x+10, y-15, 5, 30, false);

g.fillOval(x-5, y-5, 10, 10);

g.drawLine(x,y,x,y-20);

break;

case 1:

g.fill3DRect(x-15, y-15, 5, 30,false);

g.fill3DRect(x-10,y-10,20,20,false);

g.fill3DRect(x+10, y-15, 5, 30, false);

g.fillOval(x-5, y-5, 10, 10);

g.drawLine(x,y,x,y+20);

break;

case 2:

g.fill3DRect(x-15, y-15, 30, 5,false);

g.fill3DRect(x-10,y-10,20,20,false);

g.fill3DRect(x-15, y+10, 30, 5, false);

g.fillOval(x-5, y-5, 10, 10);

g.drawLine(x,y,x-20,y);

break;

case 3:

g.fill3DRect(x-15, y-15, 30, 5,false);

g.fill3DRect(x-10,y-10,20,20,false);

g.fill3DRect(x-15, y+10, 30, 5, false);

g.fillOval(x-5, y-5, 10, 10);

g.drawLine(x,y,x+20,y);

break;

}

}

//画子弹

public void drawShot(Graphics g)

{

g.fill3DRect(mt1.shot.getX(), mt1.shot.getY(), 3, 3, false);

}

} //设计监听类

class MyListener implements KeyListener

{ private MyTank mt = null;

private MyJPanel mp =null;

public MyListener(MyTank mt,MyJPanel mp)

{

this.mt=mt;

this.mp=mp;

}

public void keyPressed(KeyEvent e) {

if(e.getKeyCode()==KeyEvent.VK_UP)

{

mt.goUp();

}else if(e.getKeyCode()==KeyEvent.VK_DOWN)

{

mt.goDown();

}else if(e.getKeyCode()==KeyEvent.VK_LEFT)

{

mt.goLeft();

}else if(e.getKeyCode()==KeyEvent.VK_RIGHT)

{

mt.goRight();

}

if(e.getKeyCode()==KeyEvent.VK_J)

{

mt.fire();

}

mp.repaint();

} @Override

public void keyReleased(KeyEvent e) {

// TODO Auto-generated method stub

} @Override

public void keyTyped(KeyEvent e) {

// TODO Auto-generated method stub

}

}

java小程序死机_求解,刚写的小程序,一运行我机器就死机相关推荐

  1. 关于python小游戏的毕业论文_使用Python写一个小游戏

    引言 最近python语言大火,除了在科学计算领域python有用武之地之外,在游戏.后台等方面,python也大放异彩,本篇博文将按照正规的项目开发流程,手把手教大家写个python小游戏,来感受下 ...

  2. 自己编的的JAVA,将我以前学的FOXBASE写的一个程序用JAVA重新编写

    //自己编的的JAVA,将我以前学的FOXBASE写的一个程序用JAVA重新编写 public class test1 { public static void main(String [] args ...

  3. 使用python制作聊天框解谜游戏_使用Python写一个小游戏alien invasion!

    最近python语言大火,除了在科学计算领域python有用武之地之外,在游戏.后台等方面,python也大放异彩,本篇博文将按照正规的项目开发流程,手把手教大家写个python小游戏,来感受下其中的 ...

  4. 为什么java下载安装程序很慢_【关注】微信小程序开发和APP开发的10种区别!

    在移动互联网大火的时代,APP和微信小程序已经成为了企业从移动端获取用户流量,实现盈利的重要端口. 因为微信小程序体积小,操作方便,省去了下载安装这一操作,导致这两年微信小程序的势头是越来越猛,甚至有 ...

  5. 小程序生命周期_来,简单说说小程序的生命周期?

    简单说说小程序的生命周期? 在小程序中生命周期分为三大类 应用生命周期 页面生命周期 组件生命周期 应用生命周期 onLaunch(){ console.log('onLaunch监听小程序初始化') ...

  6. 单片机拼字程序怎么做_餐饮怎么用微信小程序?餐饮行业怎么做小程序

    随着移动互联网的发展,互联网+餐饮这种新型餐饮模式已经发展到了很成熟的地步.很多餐厅都会觉得,自己的活动很有吸引力,但是推广力度不够,不能迅速营造人气,提升收益.对于餐饮人来说,微信是主要的传播渠道, ...

  7. 小程序开发代码_企业为什么要选择小程序定制开发?

    随着小程序红利的爆发,越来越多的商家投身小程序的浪潮中,而现在微信小程序的制作方式有两种,一种是模板小程序开发,另一种是定制小程序开发.随着市场竞争激烈程度的升级和商家开发的个性需求,很多商家更多的是 ...

  8. 微信小程序收款手续费_为什么有人做的小程序交易手续费是0.38%而不是0.6%?

    有些商家在了解小程序制作过程中,会遇到关于交易手续费是千分之六还是千分之三点八的问题,这两种费率差距还是比较大的. 举个例子:当您一年成交额是1000万时,6‰和3.8‰可以差22000元呢! 尤其是 ...

  9. 拼团小程序源码_摄影类拼团小程序怎么开发?

    过去,摄影行业都是线下实体店为主,宣传手段单一.推广效率差,客户复购率更是不怎样.随着微信小程序的出现,各个摄影行业商家开始通过小程序来进行推广,连接线上线下场景,这样便能触达更多消费者. 小程序拥有 ...

  10. python微信小程序后端开发_使用django开发微信小程序后端

    tips: 本文面向的对象是已经会使用django开发web后端的人员 微信小程序后端与普通web的区别 微信小程序的后端开发和普通的restful API 大致上相同,只不过要注意以下几点限制 必须 ...

最新文章

  1. requests payload_python+Requests接口自动化测试之传递 URL 参数
  2. php单例模式的实例,PHP的单例模式的一个实例_php
  3. [转载] 使用backbone.js、zepto.js和trigger.io开发HTML5 App
  4. 国际站html代码,国际站必须看得懂的HTML代码
  5. java版本号管理_微服务项目中如何管理依赖版本号?
  6. 期待已久!iPhone 13将使用带LTPO技术的OLED屏幕
  7. 【Kibana】FATAL Error: [config validation of [elasticsearch].url]: definition for this key is missing
  8. Python实战从入门到精通第二十一讲——构建一个模块的层级包
  9. aws lambda_在AWS Lambda上运行“ Hello World”
  10. python中time模块time函数怎么写的_Python的time模块中的常用方法整理
  11. 【Android】EasyClient与EasyCamera的移植学习
  12. mac倾倒废纸篓提示文件正在使用中的一种解决办法
  13. JQuery 实现文件下载的常用方法分析
  14. gorm中一对一,多对多关系
  15. 伤害世界怎么自建服务器,伤害世界服务器怎么建 伤害世界服务器架设教程攻略...
  16. API接口搜索商品列表的调用展示
  17. 酒水知识(六大基酒之金酒_Gin)
  18. 淘宝评价显示及记分规则
  19. 移动互联应用开发基础知识简答
  20. 文本型数字转化为数值的6个公式

热门文章

  1. 京东智能巡检机器人问世 京东金融进军企业服务新蓝海
  2. 走,去谷歌的机房逛逛
  3. 成功解决运行tensorflow时ModuleNotFoundError: No module named ‘numpy.core._multiarray_umath‘
  4. Python的IDE之PyCharm:PyCharm的使用技巧图文教程(修改Pycharm默认风格颜色、编辑器内代码注释区域的颜色、编辑器内的Python Interpreter等)之详细攻略
  5. Computer:屏幕录像专家软件的简介、安装、使用方法之详细攻略
  6. AI:2020年6月22日北京智源大会演讲分享之10:40-11:30 Zoubin教授《Probabilistic Machine Learning and AI》
  7. Py之yacs:yacs的简介、安装、使用方法之详细攻略
  8. ML之SSIM:基于输入图片RGB的三维向量利用SSIM(结构相似性度量)算法进行判别
  9. 桐花万里python路-高级篇-并发编程-03-线程
  10. MySQL InnoDB表压缩