Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
Missile.java
Package: source.rar [view]
Upload User: kikomiki
Upload Date: 2021-10-31
Package Size: 373k
Code Size: 2k
Category:
Games
Development Platform:
Java
- import java.awt.*;
- import java.util.List;
- public class Missile {
- public static final int XSPEED = 10;
- public static final int YSPEED = 10;
- public static final int WIDTH = 10;
- public static final int HEIGHT = 10;
- int x, y;
- Tank.Direction dir;
- private boolean good;
- private boolean live = true;
- private TankClient tc;
- public Missile(int x, int y, Tank.Direction dir) {
- this.x = x;
- this.y = y;
- this.dir = dir;
- }
- public Missile(int x, int y, boolean good, Tank.Direction dir, TankClient tc) {
- this(x, y, dir);
- this.good = good;
- this.tc = tc;
- }
- public void draw(Graphics g) {
- if(!live) {
- tc.missiles.remove(this);
- return;
- }
- Color c = g.getColor();
- g.setColor(Color.BLACK);
- g.fillOval(x, y, WIDTH, HEIGHT);
- g.setColor(c);
- move();
- }
- private void move() {
- switch(dir) {
- case L:
- x -= XSPEED;
- break;
- case LU:
- x -= XSPEED;
- y -= YSPEED;
- break;
- case U:
- y -= YSPEED;
- break;
- case RU:
- x += XSPEED;
- y -= YSPEED;
- break;
- case R:
- x += XSPEED;
- break;
- case RD:
- x += XSPEED;
- y += YSPEED;
- break;
- case D:
- y += YSPEED;
- break;
- case LD:
- x -= XSPEED;
- y += YSPEED;
- break;
- case STOP:
- break;
- }
- if(x < 0 || y < 0 || x > TankClient.GAME_WIDTH || y > TankClient.GAME_HEIGHT) {
- live = false;
- }
- }
- public boolean isLive() {
- return live;
- }
- public Rectangle getRect() {
- return new Rectangle(x, y, WIDTH, HEIGHT);
- }
- public boolean hitTank(Tank t) {
- if(this.live && this.getRect().intersects(t.getRect()) && t.isLive() && this.good != t.isGood()) {
- if(t.isGood()) {
- t.setLife(t.getLife()-20);
- if(t.getLife() <= 0) t.setLive(false);
- } else {
- t.setLive(false);
- }
- this.live = false;
- Explode e = new Explode(x, y, tc);
- tc.explodes.add(e);
- return true;
- }
- return false;
- }
- public boolean hitTanks(List<Tank> tanks) {
- for(int i=0; i<tanks.size(); i++) {
- if(hitTank(tanks.get(i))) {
- return true;
- }
- }
- return false;
- }
- public boolean hitWall(Wall w) {
- if(this.live && this.getRect().intersects(w.getRect())) {
- this.live = false;
- return true;
- }
- return false;
- }
- }