当前位置: 首页 > news >正文

Java高级Day28-让坦克动起来

让坦克动起来

先绘制好坦克的四个方向:

 //根据坦克方向,来绘制对应坦克//direct来表示方向(0:向上 1:向右 2:向下 3:向左)switch (direct){case 0://表示向上g.fill3DRect(x, y, 10,60,false);//画出坦克左边的轮子g.fill3DRect(x + 30, y, 10,60,false);//画出坦克右边的轮子g.fill3DRect(x + 10, y + 10, 20,20,false);//画出坦克身子g.fillOval(x + 10, y + 20, 20,20);//画出坦克圆盖g.drawLine(x + 20, y + 30, x +20,y);//画出坦克炮筒break;case 1://表示向右g.fill3DRect(x, y, 60,10,false);//画出坦克上边的轮子g.fill3DRect(x, y + 30, 60,10,false);//画出坦克下边的轮子g.fill3DRect(x + 10, y + 10, 40,20,false);//画出坦克身子g.fillOval(x + 20, y + 10, 20,20);//画出坦克圆盖g.drawLine(x + 30, y + 20, x +60,y + 20);//画出坦克炮筒break;case 2://表示向下g.fill3DRect(x, y, 10,60,false);//画出坦克上边的轮子g.fill3DRect(x, y + 30, 10,60,false);//画出坦克下边的轮子g.fill3DRect(x + 10, y + 10, 20,20,false);//画出坦克身子g.fillOval(x + 10, y + 20, 20,20);//画出坦克圆盖g.drawLine(x + 20, y + 30, x +20,y + 60);//画出坦克炮筒break;case 3://表示向左g.fill3DRect(x, y, 60,10,false);//画出坦克上边的轮子g.fill3DRect(x, y + 30, 60,10,false);//画出坦克下边的轮子g.fill3DRect(x + 10, y + 10, 40,20,false);//画出坦克身子g.fillOval(x + 20, y + 10, 20,20);//画出坦克圆盖g.drawLine(x + 30, y + 20, x,y + 20);//画出坦克炮筒break;default:System.out.println("暂时没有处理");}

再让坦克动起来:

 //处理wdsa 键按下的情况@Overridepublic void keyPressed(KeyEvent e) {if (e.getKeyCode() == KeyEvent.VK_W) {//改变坦克方向mytank.moveUp();//修改坦克的坐标mytank.setY(mytank.getY() - 1);} else if (e.getKeyCode() == KeyEvent.VK_D) {mytank.setDirect(1);mytank.moveRight();} else if (e.getKeyCode() == KeyEvent.VK_S) {mytank.setDirect(2);mytank.moveDown();} else if (e.getKeyCode() == KeyEvent.VK_A) {mytank.setDirect(3);mytank.moveLeft();}//让面板重绘this.repaint();}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 保命指南,家里有浮毛、异味竟会危害健康?去浮毛空气净化器推荐
  • vue的混入介绍
  • 我常用的几个傻瓜式爬虫工具,收藏!
  • Luminar Neo for Mac/Win:创新AI图像编辑软件的强大功能
  • vuex properties of undefined (reading ‘getters‘)
  • k8s 存储卷管理 持久卷 pv/pvc 临时卷
  • ESP32播放网络音频文件
  • ECMAScript的`Array.from()`:将可迭代对象转换为数组的利器
  • Java解析压缩包,并根据指定文件夹上传文件
  • python两大编程思想,类和对象,实例变量类变量,静态方法与实例方法和类方法,给对象动态绑定属性和函数
  • 老外说“You‘re a fat cat”是什么意思?你是只肥猫?错得离谱!柯桥学英语口语到银泰广场
  • 团结引擎发布1.2.3版本更新
  • zdpgo_cobra_req 新增解析请求体内容
  • 电脑屏幕录制指南,2024四大免费录屏软件推荐!
  • 猫头虎 分享已解决Bug || ImportError: No module named ‘django‘ 解决方案
  • 【mysql】环境安装、服务启动、密码设置
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • angular学习第一篇-----环境搭建
  • CentOS 7 防火墙操作
  • CSS 专业技巧
  • Docker下部署自己的LNMP工作环境
  • HashMap剖析之内部结构
  • HTTP那些事
  • HTTP请求重发
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • java中的hashCode
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • sublime配置文件
  • Unix命令
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 服务器之间,相同帐号,实现免密钥登录
  • 京东美团研发面经
  • 通过git安装npm私有模块
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • ​字​节​一​面​
  • # 详解 JS 中的事件循环、宏/微任务、Primise对象、定时器函数,以及其在工作中的应用和注意事项
  • ###C语言程序设计-----C语言学习(3)#
  • #C++ 智能指针 std::unique_ptr 、std::shared_ptr 和 std::weak_ptr
  • #Java第九次作业--输入输出流和文件操作
  • #mysql 8.0 踩坑日记
  • #微信小程序:微信小程序常见的配置传旨
  • (4) PIVOT 和 UPIVOT 的使用
  • (7)STL算法之交换赋值
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (十)Flink Table API 和 SQL 基本概念
  • (实战篇)如何缓存数据
  • (转) RFS+AutoItLibrary测试web对话框