diff options
author | Alexander Kriegisch <Alexander@Kriegisch.name> | 2024-02-01 08:57:52 +0700 |
---|---|---|
committer | Alexander Kriegisch <Alexander@Kriegisch.name> | 2024-02-01 08:58:28 +0700 |
commit | 983159c76ca8163b61f0d52c98522e8bc113f585 (patch) | |
tree | 3137bb04a0942b59d7b066912a2fa8fed5601373 /docs/modules/ROOT/pages/examples/spacewar/Display1.java | |
parent | c99b58736fd7f2952fe9bf787333631a762dcbeb (diff) | |
download | aspectj-antora.tar.gz aspectj-antora.zip |
Move source code examples to Antora examples directoryantora
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
Diffstat (limited to 'docs/modules/ROOT/pages/examples/spacewar/Display1.java')
-rw-r--r-- | docs/modules/ROOT/pages/examples/spacewar/Display1.java | 201 |
1 files changed, 0 insertions, 201 deletions
diff --git a/docs/modules/ROOT/pages/examples/spacewar/Display1.java b/docs/modules/ROOT/pages/examples/spacewar/Display1.java deleted file mode 100644 index 622f7d051..000000000 --- a/docs/modules/ROOT/pages/examples/spacewar/Display1.java +++ /dev/null @@ -1,201 +0,0 @@ -/* - -Copyright (c) Xerox Corporation 1998-2002. All rights reserved. - -Use and copying of this software and preparation of derivative works based -upon this software are permitted. Any distribution of this software or -derivative works must comply with all applicable United States export control -laws. - -This software is made available AS IS, and Xerox Corporation makes no warranty -about the software, its performance or its conformity to any specification. - -|<--- this code is formatted to fit into 80 columns --->| -|<--- this code is formatted to fit into 80 columns --->| -|<--- this code is formatted to fit into 80 columns --->| - - -Display1.java -Part of the Spacewar system. -*/ - -package spacewar; - - -import java.awt.Graphics; -import java.awt.Color; -import java.util.Random; - -/** - * This is the standard display aspect. - */ -class Display1 extends Display { - /* - * Here's the color scheme for the game. No other places in this file - * should say Color.xxx. Instead, that color should be given a symbolic - * name here. - */ - private static Color backgroundColor = Color.black; - private static Color player1ShipColor = Color.white; - private static Color player2ShipColor = Color.gray; - private static Color robotShipColor = new Color(0xa00000); - private static Color flameColor = Color.red; - private static Color shipExplosionColor = Color.red; - private static Color bulletColor = Color.green; - private static Color energyPacketOuterColor = Color.blue; - private static Color energyPacketInnerColor = new Color(0x7070FF); - private static Color statusLabelsColor = Color.white; - private static Color statusMeterBorderColor = Color.white; - private static Color energyStatusMeterColor = Color.blue; - private static Color damageStatusMeterColor = Color.red; - - - Display1(Game game) { - super(game); - frame.setLocation(20, 20); - } - - void noticeSizeChange() { - super.noticeSizeChange(); - setBackground(backgroundColor); - } - - void paintObjects(Graphics g) { - SpaceObject[] objects = game.getRegistry().getObjects(); - final int len = objects.length; - for (int i = 0; i < len; i++) { - objects[i].paint(g); - } - } - - static aspect SpaceObjectPainting { - - abstract private void SpaceObject.paint(Graphics g); - - /* - * Ships are by far and away the most complex of the space Objects - * to paint. First off, we need to set the color when the ship - * is made. - */ - private Color Ship.color; - - after(Pilot pilot) returning (Ship ship): call(Ship Game.newShip(Pilot)) && args(pilot) { - if (pilot.getNumber() == 1) - ship.color = player1ShipColor; - else if (pilot.getNumber() == 2) - ship.color = player2ShipColor; - else - ship.color = robotShipColor; - } - - private void Ship.paint(Graphics g) { - final double PI = Math.PI; - int[] radius = {15, 12, -4, 12, -9, -15, -9}; - double[] angle = {0, PI * 3/4, 0, -PI * 3/4, PI/8, 0, -PI/8}; - int[] x; - int[] y; - - Random random = new Random(); - - if (this.getDamage() >= this.MAX_DAMAGE) { - int lines = 20; - x = new int[lines]; - y = new int[lines]; - g.setColor(shipExplosionColor); - for (int i = 0; i < lines; i++) { - x[i] = (int)(this.getXPos()) + random.nextInt() % 20; - y[i] = (int)(this.getYPos()) + random.nextInt() % 20; - } - for (int i = 0; i < lines; i++) - g.drawLine(x[i], y[i], x[(i + 1) % lines], y[(i + 1) % lines]); - } else { - x = new int[7]; - y = new int[7]; - - g.setColor(this.color); - - radius[5] += random.nextInt() % 3; - // convert coordinates from polar to cartesian - for (int i = 0; i < 7; i++) { - x[i] = (int) - (this.getXPos() + - Math.cos(this.getOrientation() + angle[i]) * radius[i]); - y[i] = (int) - (this.getYPos() + - Math.sin(this.getOrientation() + angle[i]) * radius[i]); - } - - // draw the body as a polygon - g.drawPolygon(x, y, 4); - - // if the ship is accelerating, draw in a flame - if (this.getRAcc() != 0) { - g.setColor(flameColor); - g.drawLine(x[4], y[4], x[5], y[5]); - g.drawLine(x[5], y[5], x[6], y[6]); - } - } - } - - /* - * Bullets - */ - private void Bullet.paint(Graphics g) { - g.setColor(bulletColor); - g.fillOval((int)this.getXPos() - 1, - (int)this.getYPos() - 1, - 3, - 3); - } - - /* - * energy packets - */ - private void EnergyPacket.paint(Graphics g) { - g.setColor(energyPacketOuterColor); - g.fillOval((int)this.getXPos() - 5, - (int)this.getYPos() - 5, - 10, 10); - g.setColor(energyPacketInnerColor); - g.fillOval((int)this.getXPos() - 2, - (int)this.getYPos() - 2, - 3, 3); - } - } - - - void paintStatus(Graphics g) { - int left1 = 60; - int top1 = 0; - - int left2 = 200; - int top2 = 0; - - g.setColor(statusLabelsColor); - g.drawString("energy:", 5, top1 + 15); - g.drawString("damage:", 5, top1 + 30); - - if (getPilot1() != null) - paintLevels(g, getPilot1().getShip(), top1, left1); - if (getPilot2() != null) - paintLevels(g, getPilot2().getShip(), top2, left2); - } - - static void paintLevels(Graphics g, Ship ship, int top, int left) { - if (ship == null) - return; - else if (ship.isAlive()) { - g.setColor(statusMeterBorderColor); - g.drawRect(left, top + 6, 101, 10); - g.drawRect(left, top + 21, 101, 10); - g.setColor(energyStatusMeterColor); - g.fillRect(left + 1, top + 7, (int)(ship.getEnergyLevel()*100), 9); - g.setColor(damageStatusMeterColor); - g.fillRect(left + 1, top + 22, (int)(ship.getDamageLevel()*100), 9); - } - else { - g.setColor(damageStatusMeterColor); - g.drawString("Ship is destroyed", left+1, top+15); - } - } -} |