坦克大战-第一天(画出坦克)

原创 2013年12月04日 21:18:58
/**
 * 作者:@author ZhangShaoWen
 * 日期:2013-12-04
 * 功能:坦克1.0
 */
package com.tank;

import javax.swing.*;
import java.awt.*;

public class MyTankGame1 extends JFrame{

	MyPanel mp = null;
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new MyTankGame1();
	}
	
	//构造函数
	public MyTankGame1(){
		mp = new MyPanel();
		
		this.add(mp);
		this.setSize(400,300);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setVisible(true);
	}
}

//我的面板
class MyPanel extends JPanel{
	
	//定义一个坦克
	Hero hero = null;
	
	//构造函数
	public MyPanel(){
		
		hero = new Hero(10,10);
	}
	
	//重新paint
	public void paint(Graphics g){
		
		super.paint(g);
		g.fillRect(0, 0, 400, 300);
		this.drawTank(hero.getX(), hero.getY(), g, 0, 1);
	}
	
	/**
	 * //画出坦克的函数
	 * @param x 起始位置x
	 * @param y 起始位置y
	 * @param g 画笔
	 * @param direct 坦克的方向
	 * @param type 坦克的类型
	 */
	public void drawTank(int x,int y,Graphics g,int direct,int type){
		
		switch(type){//判断坦克的类型(我的坦克,或是敌人)
		
			case 0:
				g.setColor(Color.cyan);
				break;
			case 1:
				g.setColor(Color.yellow);
		}
		
		switch(direct){//判断坦克的方向
			
			case 0:
				//画出我的坦克
				//1.画出左边的矩形
				g.fill3DRect(x, y, 5, 30, false);
				//2.画出右边的矩形
				g.fill3DRect(x+15, y, 5, 30, false);
				//3.画出中间矩形
				g.fill3DRect(x+5, y+5, 10, 20, false);
				//4.画出圆形
				g.fillOval(x+4, y+10, 10, 10);
				//5.画出线
				g.drawLine(x+10, y, x+10, y+5);
				break;
		}
	}
}

//坦克类
class Tank{

	//x表示坦克的横坐标
	int x=0;
	//y表示坦克的纵坐标
	int y=0;
	
	//构造函数
	public Tank(int x,int y){
		this.x = x;
		this.y = y;
	}
	
	public int getX() {
		return x;
	}

	public void setX(int x) {
		this.x = x;
	}

	public int getY() {
		return y;
	}

	public void setY(int y) {
		this.y = y;
	}
}

//我的坦克
class Hero extends Tank{
	//构造函数
	public Hero(int x,int y){
		//调用父类的构造函数
		super(x, y);
	}
}

坦克大战实现

先将常用的函数与头文件,宏定义等写到一个公共类中 #ifndef __Common_H__ #define __Common_H__ #include "cocos2d.h" #include ...
  • whuhan2013
  • whuhan2013
  • 2016年02月29日 15:38
  • 1558

HTML5-坦克大战一画出敌人坦克并让自己的坦克可以发子弹的功能(二)

上一篇博客只画出了,一个坦克,并让其可以上下左右移动,这篇博客将画出敌人的坦克,并让自己的坦克可以发子弹,但是还不是尽善尽美,还有一些问题,将会在下篇博客说明: html代码: html...
  • S0009527
  • S0009527
  • 2017年08月01日 11:13
  • 431

【Java_项目篇<1>】--JAVA实现坦克大战游戏--画出坦克(一)

为什么选择这个项目? 1.好玩,有趣 2.涉及到java基础的各个方面的技术: 面向对象思想、多线程、IO、绘图技术、监听事件、数据库、界面编程 3.巩固旧的知识 黑色框为JFrame 红...
  • qq_24653023
  • qq_24653023
  • 2016年08月16日 22:43
  • 8604

小强的HTML5移动开发之路(9)——坦克大战游戏3

来自:http://blog.csdn.net/dawanganban/article/details/17754235上一篇我们创建了敌人的坦克和自己的坦克,接下来就应该让坦克发子弹了,我们下面来看...
  • caixingyun
  • caixingyun
  • 2015年09月22日 09:13
  • 874

【Java_项目篇<1>】--JAVA实现坦克大战游戏--坦克移动+添加敌方坦克(二)

控制小球移动 1.外部类 实现KeyListener监听接口 package com.test3; import java.awt.Graphics; import java.awt.eve...
  • qq_24653023
  • qq_24653023
  • 2016年08月17日 21:49
  • 3919

pygame编写的坦克游戏(一)

python + pygame 完整模拟红白机上的坦克大战,完成版源代码,和生成EXE打包脚本,是学习python和游戏开发的绝佳入门资料!...
  • cmd9x
  • cmd9x
  • 2015年10月07日 17:22
  • 1279

VS2012坦克大战的部分源码

自己写的坦克的部分源码~~~~~~
  • aap159951
  • aap159951
  • 2015年09月24日 07:57
  • 795

基于java的坦克大战实例

原创性声明 此博文的出处 为 http://blog.csdn.net/zhujunxxxxx/article/details/39251241如果进行转载请注明出处。本文作者原创,邮箱zhujun...
  • zhujunxxxxx
  • zhujunxxxxx
  • 2014年10月26日 08:25
  • 9425

HTML5 坦克大战游戏的制作思路

BattleCity(坦克大战) github地址 在线试玩(使用ES6完成,浏览器版本过低无法打开) 整个游戏为我个人独立完成,基本上复原了85版的游戏,因为一开始写这个游戏的时候说实话连ca...
  • jinboker
  • jinboker
  • 2016年08月05日 13:37
  • 3415

C# 坦克大战学习总结

1.学会用Resource管理资源 添加资源 在properties下的Resource.resx添加资源 使用资源 工程名.Properties.Resource....
  • zy691357966
  • zy691357966
  • 2016年01月07日 20:35
  • 1112
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:坦克大战-第一天(画出坦克)
举报原因:
原因补充:

(最多只允许输入30个字)