java小程序死机_求解,刚写的小程序,一运行我机器就死机
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
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小程序死机_求解,刚写的小程序,一运行我机器就死机相关推荐
- 关于python小游戏的毕业论文_使用Python写一个小游戏
引言 最近python语言大火,除了在科学计算领域python有用武之地之外,在游戏.后台等方面,python也大放异彩,本篇博文将按照正规的项目开发流程,手把手教大家写个python小游戏,来感受下 ...
- 自己编的的JAVA,将我以前学的FOXBASE写的一个程序用JAVA重新编写
//自己编的的JAVA,将我以前学的FOXBASE写的一个程序用JAVA重新编写 public class test1 { public static void main(String [] args ...
- 使用python制作聊天框解谜游戏_使用Python写一个小游戏alien invasion!
最近python语言大火,除了在科学计算领域python有用武之地之外,在游戏.后台等方面,python也大放异彩,本篇博文将按照正规的项目开发流程,手把手教大家写个python小游戏,来感受下其中的 ...
- 为什么java下载安装程序很慢_【关注】微信小程序开发和APP开发的10种区别!
在移动互联网大火的时代,APP和微信小程序已经成为了企业从移动端获取用户流量,实现盈利的重要端口. 因为微信小程序体积小,操作方便,省去了下载安装这一操作,导致这两年微信小程序的势头是越来越猛,甚至有 ...
- 小程序生命周期_来,简单说说小程序的生命周期?
简单说说小程序的生命周期? 在小程序中生命周期分为三大类 应用生命周期 页面生命周期 组件生命周期 应用生命周期 onLaunch(){ console.log('onLaunch监听小程序初始化') ...
- 单片机拼字程序怎么做_餐饮怎么用微信小程序?餐饮行业怎么做小程序
随着移动互联网的发展,互联网+餐饮这种新型餐饮模式已经发展到了很成熟的地步.很多餐厅都会觉得,自己的活动很有吸引力,但是推广力度不够,不能迅速营造人气,提升收益.对于餐饮人来说,微信是主要的传播渠道, ...
- 小程序开发代码_企业为什么要选择小程序定制开发?
随着小程序红利的爆发,越来越多的商家投身小程序的浪潮中,而现在微信小程序的制作方式有两种,一种是模板小程序开发,另一种是定制小程序开发.随着市场竞争激烈程度的升级和商家开发的个性需求,很多商家更多的是 ...
- 微信小程序收款手续费_为什么有人做的小程序交易手续费是0.38%而不是0.6%?
有些商家在了解小程序制作过程中,会遇到关于交易手续费是千分之六还是千分之三点八的问题,这两种费率差距还是比较大的. 举个例子:当您一年成交额是1000万时,6‰和3.8‰可以差22000元呢! 尤其是 ...
- 拼团小程序源码_摄影类拼团小程序怎么开发?
过去,摄影行业都是线下实体店为主,宣传手段单一.推广效率差,客户复购率更是不怎样.随着微信小程序的出现,各个摄影行业商家开始通过小程序来进行推广,连接线上线下场景,这样便能触达更多消费者. 小程序拥有 ...
- python微信小程序后端开发_使用django开发微信小程序后端
tips: 本文面向的对象是已经会使用django开发web后端的人员 微信小程序后端与普通web的区别 微信小程序的后端开发和普通的restful API 大致上相同,只不过要注意以下几点限制 必须 ...
最新文章
- requests payload_python+Requests接口自动化测试之传递 URL 参数
- php单例模式的实例,PHP的单例模式的一个实例_php
- [转载] 使用backbone.js、zepto.js和trigger.io开发HTML5 App
- 国际站html代码,国际站必须看得懂的HTML代码
- java版本号管理_微服务项目中如何管理依赖版本号?
- 期待已久!iPhone 13将使用带LTPO技术的OLED屏幕
- 【Kibana】FATAL Error: [config validation of [elasticsearch].url]: definition for this key is missing
- Python实战从入门到精通第二十一讲——构建一个模块的层级包
- aws lambda_在AWS Lambda上运行“ Hello World”
- python中time模块time函数怎么写的_Python的time模块中的常用方法整理
- 【Android】EasyClient与EasyCamera的移植学习
- mac倾倒废纸篓提示文件正在使用中的一种解决办法
- JQuery 实现文件下载的常用方法分析
- gorm中一对一,多对多关系
- 伤害世界怎么自建服务器,伤害世界服务器怎么建 伤害世界服务器架设教程攻略...
- API接口搜索商品列表的调用展示
- 酒水知识(六大基酒之金酒_Gin)
- 淘宝评价显示及记分规则
- 移动互联应用开发基础知识简答
- 文本型数字转化为数值的6个公式
热门文章
- 京东智能巡检机器人问世 京东金融进军企业服务新蓝海
- 走,去谷歌的机房逛逛
- 成功解决运行tensorflow时ModuleNotFoundError: No module named ‘numpy.core._multiarray_umath‘
- Python的IDE之PyCharm:PyCharm的使用技巧图文教程(修改Pycharm默认风格颜色、编辑器内代码注释区域的颜色、编辑器内的Python Interpreter等)之详细攻略
- Computer:屏幕录像专家软件的简介、安装、使用方法之详细攻略
- AI:2020年6月22日北京智源大会演讲分享之10:40-11:30 Zoubin教授《Probabilistic Machine Learning and AI》
- Py之yacs:yacs的简介、安装、使用方法之详细攻略
- ML之SSIM:基于输入图片RGB的三维向量利用SSIM(结构相似性度量)算法进行判别
- 桐花万里python路-高级篇-并发编程-03-线程
- MySQL InnoDB表压缩