坦克大战中的坦克

临近期末考试,给大家整一个轻松一些的代码

做个坦克大战中的坦克

当然要想做成小游戏还是要努努力呀~

祝大家考个好成绩

import java.awt.Color;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JFrame;
import javax.swing.JPanel;
public class Tank extends JFrame implements KeyListener{
int x = 10;
int y = 50;
int a;//保存按键的编号
Tank(){
this.setTitle("坦克大战");
this.addKeyListener(this);
this.setSize(400,400);
this.setVisible(true);
}
public static void main(String[] args) {
new Tank();
}
//1 重写paint方法
// 1 显示图形界面的时候自动调用
// 2 窗口还原的时候调用
// 3 repaint调用
public void paint(Graphics g) {
super.paint(g);
g.setColor(Color.gray);

//绘制左边轮胎
g.fill3DRect(x, y, 5, 40, false);

//绘制右边轮胎
g.fill3DRect(x+30, y, 5, 40, false);

//绘制中间的圆
g.fillOval(x+2, y+10, 30, 20);

g.setColor(Color.red);
//绘制炮台
g.fill3DRect(x+15, y+28, 5, 20, false);

if(a==88){//按下的X键(x键编号是88)
g.fillOval(x+10, y+70, 10, 10);
g.fillOval(x+2, y+120, 20, 20);
g.fillOval(x-5, y+170, 30, 30);

a = 0;//重置按键编号
}

}

//按住不放
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub

}
//按下某个键调用
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
a = e.getKeyCode();//获得按件的编号
switch(a){
case 38: //上
y-=5;
break;
case 40: //下
y+=5;
break;
case 37: //左
x-=5;
break;
case 39: //右
x+=5;
break;
}

this.repaint();//重新绘图
}
//释放某个键
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub

}
class Panels extends JPanel{

}
}

展示一下运行效果

原文地址:https://www.cnblogs.com/tianyating/p/9200928.html

时间: 2024-10-12 04:15:47

坦克大战中的坦克的相关文章

黑马2018年最新kotlin项目实战视频 (手机影音、即时通讯、黑马外卖、坦克大战等)

├─1.kotlin简介和学习方法│ 01_kotlin课程简介_01.mp4│ 02_kotlin学习方法_01.mp4│ 03_kotlin选好教练车_01.mp4│ 03_kotlin选好教练车_02.mp4│ 04_kotlin你好世界_01.mp4│ 05_kotlin变量与输出_01.mp4│ 05_kotlin变量与输出_02.mp4│ ├─10.类,对象和接口(三)│ 38_kotlin面向对象-抽象类和接口_01.mp4│ 38_kotlin面向对象-抽象类和接口_02.mp4

坦克大战系列(3.0版)

无论头上是怎样的天空,我准备承受任何风暴.--拜伦 本讲内容:坦克3.0版(面向对象的思想) 要求:画出我方坦克会动并且会发射子弹.画出敌人坦克 一.同一个包下建二个文件分别为:MyTankGame.Members(负责其它成员譬如:制造坦克.子弹等) MyTankGame类 /** * 功能:坦克游戏的3.0版本 * 1:画出坦克 * 2:实现我方坦克移动并且會發子彈,并 画出敌人的坦克 */ package a; import javax.swing.*; import java.awt.*

C++代码训练之坦克大战(2)

这一篇中,我们继续继续进行我们的坦克大战. 位置信息数据结构 在游戏设计过程中,需要记录大量的位置信息,如果仅仅使用(x,y)坐标很容易出错.这一篇中,我们先定义两个简单的数据结构用来保存点和矩形的信息. 在项目中新建Model目录,创建下面四个文件: 代码如下: Point.h #ifndef __POINT_H__ #define __POINT_H__ class Point { public: Point(int x = 0, int y = 0) : m_x(x), m_y(y){};

坦克大战(版本2.5-版本2.9)

版本2.5 功能:添加“血块”步骤:        1)添加blood类        2)添加必要的方法:eat方法等        3)让blood对象固定轨迹运动, 并在一定时间后消失 具体代码实现: 新增的blood类: 1 import java.awt.Color; 2 import java.awt.Graphics; 3 import java.awt.Rectangle; 4 5 //模拟血块,坦克吃了可以补血 6 public class Blood { 7 int x, y

Java__线程---基础知识全面实战---坦克大战系列为例

今天想将自己去年自己编写的坦克大战的代码与大家分享一下,主要面向学习过java但对java运用并不是很熟悉的同学,该编程代码基本上涉及了java基础知识的各个方面,大家可以通过练习该程序对自己的java进行一下实战. 每个程序版本代码中,都附有相关注释,看完注释大家就可以对本程序设计有个很明显的思路.真的很有趣,想对java重新温习的同学完全不必再对厚厚的java基础书籍进行阅读了,在跟着本次代码练习并分析后,大家一定会对java各方面基础知识 尤其是线程的知识有更深一步的了解!!! 本次坦克大

【Cocos2D-x 3.5实战】坦克大战(1)环境配置

前言: 最近课比较少,空闲时间比较多,一有时间就东想西想,想着想着就突然想到做手机游戏(android)了,学习下CoCos2d.看了一些CoCos2D的相关文档和教程,觉得是时候实战了,但是苦于没有什么新奇的游戏点子,只有写下被儿时玩过的坦克大战了(主要素材好找).而这个系列的文章来记录下我的开发过程. 开发环境: Win7(x64) VS2012  下载地址: http://www.itellyou.cn/ Eclipse  下载地址:http://www.eclipse.org/downl

坦克大战系列(8.0版)

人生在勤,不索何获.--张衡 本讲内容:坦克大战8.0版(面向对象的思想) 一.解决:防止敌人坦克重叠运动 1.定义一个Vector容器,装所有敌人的坦克(为了得到所有坦克坐标) 2.定义一个方法getEts()可以得到敌人的坦克(为了得到所有坦克坐标) 3.在我的我的面板的构造方法调用getEts() 4.定义一个判断是否碰到了别的敌人的坦克的方法isTouchOtherEnemy() 5.在设置敌人坦克随机走动那调用isTouchOtherEnemy() 二.解决:我方坦克死亡(即隐身)后,

【跟我一起学Unity3D】做一个2D的90坦克大战之地图编辑器

从10月20号到现在,Unity3D也学了10天了,对于Unity3D也有了一个大致的了解,有必要做一个小游戏来检测一下自己的学习成果了.经过两天的努力,终于总算是做出来了一个可以玩的坦克大战了.首先讲讲我的设计目标: 1.地图编辑器 2.道具系统 3.简单AI系统 4.计分器 其中,最重要的就是地图编辑器了,其次到AI系统,其他几个都挺简单的. ---------------------------------------------------------------------------

加强版坦克大战(java版)

转载自:http://blog.csdn.net/lihongxun945/article/details/6275581 这个坦克大战参考了初学java时看的马士兵的一个教程和小霸王上的坦克大战,并且加入了很多在魔兽中的英雄属性(移动速度,攻击速度,攻击力,生命上限等),还加入了一个小巧的地图编辑器. 废话不多说,先上图: 游戏界面: 地图编辑器: 详细说明: 1,除了坦克的图片外,其他图片全部为自己手绘,可能有点丑,特别是那个基地——! 2,游戏主界面,右边为属性窗口,在主界面按F4打开地图