package com.example.helloandroid; import java.util.ArrayList; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Paint.FontMetrics; import android.util.Log; public class Planet { int radius; int regenRate; // ships per second private int x; private int y; int faction; int numShips; public Planet(int radius, int x, int y) { this.radius = radius; this.x = x; this.y = y; faction = 0; numShips = 0; regenRate = 0; //change this to some expression / funcion call } public int getX() { return x; } public int getY() { return y; } public int getRadius() { return radius; } public int getNumShips() { return numShips; } public void setNumShips(int num) { numShips = num; } public void setFaction(int faction) { this.faction = faction; } public void draw(Canvas canvas, Paint linePaint, Paint textPaint) { FontMetrics metrics = textPaint.getFontMetrics(); int c, prevC = linePaint.getColor(); switch(faction) { case 0: c = Color.argb(255, 100, 100, 100); break; case 1: c = Color.argb(255, 255, 0, 0); break; case 2: c = Color.argb(255, 0, 255, 0); break; case 3: c = Color.argb(255, 0, 0, 255); break; case 4: c = Color.argb(255, 255, 255, 0); break; default: c = prevC; } linePaint.setColor(c); canvas.drawCircle(x, y, getRadius(), linePaint); canvas.drawText(Integer.toString(numShips), x-textPaint.measureText(Integer.toString(numShips))/2, y-(metrics.ascent+metrics.descent)/2, textPaint); linePaint.setColor(prevC); } public void update() { if(faction != 0) numShips++; } public void sendFleet(Planet p, int numShips) { } public boolean collides(Planet p) { double dist = Math.sqrt(Math.pow(this.x-p.x, 2) + Math.pow(this.y-p.y, 2)); return dist <= this.radius + p.radius; } public static boolean collisionDetected(Planet p, ArrayList curPlanets) { for(Planet p2 : curPlanets) { if(p.collides(p2)) return true; } return false; } }