Changeset 5053d90 in galcon-client for src/com/example/helloandroid/Planet.java


Ignore:
Timestamp:
May 30, 2010, 9:32:02 PM (15 years ago)
Author:
dportnoy <devnull@…>
Branches:
master
Children:
c27abf4
Parents:
b6a9b5f
Message:

The game now responds to touchscreen events and the player can select planets.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/com/example/helloandroid/Planet.java

    rb6a9b5f r5053d90  
    33import java.util.ArrayList;
    44
     5import android.graphics.Bitmap;
    56import android.graphics.Canvas;
    67import android.graphics.Color;
    78import android.graphics.Paint;
    89import android.graphics.Paint.FontMetrics;
    9 import android.util.Log;
    1010
    1111public class Planet {
     
    1616        int faction;
    1717        int numShips;
    18 
     18        boolean selected;
     19        private Bitmap selection;
     20       
    1921        public Planet(int radius, int x, int y) {
    2022                this.radius = radius;
     
    2325                faction = 0;
    2426                numShips = 0;
     27                selected = false;
    2528               
    2629                regenRate = 0;  //change this to some expression / funcion call
     30               
     31                int size = getRadius()+15;
     32               
     33                selection = Bitmap.createBitmap(size*2, size*2, Bitmap.Config.ARGB_8888);
     34                Canvas c = new Canvas(selection);
     35                c.drawColor(Color.argb(0, 0, 0, 0));
     36               
     37                Paint p = new Paint();
     38        p.setAntiAlias(true);
     39               
     40                p.setColor(Color.argb(255, 255, 255, 255));
     41                c.drawCircle(size, size, getRadius()+11, p);
     42               
     43                p.setColor(Color.argb(255, 100, 100, 100));
     44                c.drawCircle(size, size, getRadius()+5, p);
     45               
     46                for(int i=0; i<size*2; i++) {
     47                        for(int j=0; j<size*2; j++) {
     48                                if(selection.getPixel(i,j) == Color.argb(255, 100, 100, 100))
     49                                        selection.setPixel(i, j, Color.argb(0, 0, 0, 0));
     50                        }
     51                }
    2752        }
    2853       
     
    4368        }
    4469       
     70        public boolean isSelected() {
     71                return selected;
     72        }
     73       
    4574        public void setNumShips(int num) {
    4675                numShips = num;
     
    5180        }
    5281       
     82        public void select() {
     83                selected = true;
     84        }
     85       
     86        public void unselect() {
     87                selected = false;
     88        }
     89       
    5390        public void draw(Canvas canvas, Paint linePaint, Paint textPaint) {
    5491                FontMetrics metrics = textPaint.getFontMetrics();
    5592               
    5693                int c, prevC = linePaint.getColor();
     94               
     95                if(selected) {
     96                        //drawSelectionCircle(canvas);
     97                }
    5798               
    5899                switch(faction) {
     
    84125        }
    85126       
     127        public void drawSelectionCircle(Canvas canvas) {
     128                int size = getRadius()+15;
     129               
     130                canvas.drawBitmap(selection, x-size, y-size, null);
     131        }
     132       
    86133        public void update() {
    87134                if(faction != 0)
     
    92139        public void sendFleet(Planet p, int numShips) {
    93140               
     141        }
     142       
     143        public boolean contains(int x, int y) {
     144                double dist = Math.sqrt(Math.pow(this.x-x, 2) + Math.pow(this.y-y, 2));
     145               
     146                return dist <= this.radius;
    94147        }
    95148       
Note: See TracChangeset for help on using the changeset viewer.