Changeset fea4b77 in advance-wars


Ignore:
Timestamp:
Jun 6, 2011, 6:07:43 PM (13 years ago)
Author:
dportnoy <devnull@…>
Branches:
master
Children:
99433bb
Parents:
b660017
Message:

Implemented turn and support for computer-controller movement of units. Right now, the computer moves a specific unit down one square when its his turn.

Files:
9 edited

Legend:

Unmodified
Added
Removed
  • res/values/strings.xml

    rb660017 rfea4b77  
    33    <string name="hello">Hello World, advancewars!</string>
    44    <string name="app_name">Advance Wars</string>
     5    <string name="menu_end_turn">End Turn</string>
    56    <string name="menu_save">Save</string>
    67    <string name="menu_main">Main Menu</string>
  • src/com/medievaltech/advancewars/Game.java

    rb660017 rfea4b77  
    1515
    1616public class Game extends Activity {
    17         private static final int MENU_SAVE = 1;
    18         private static final int MENU_MAIN = 2;
    19     private static final int MENU_EXIT = 3;
    20 
    21     /** A handle to the thread that's actually running the animation. */
    2217    public DrawingThread mThread;
    23 
    24     /** A handle to the View in which the game is running. */
    2518    private GameView mGameView;
    2619   
     
    3528        super.onCreateOptionsMenu(menu);
    3629
    37         menu.add(0, MENU_SAVE, 0, R.string.menu_save);
    38         menu.add(0, MENU_MAIN, 0, R.string.menu_main);
    39         menu.add(0, MENU_EXIT, 0, R.string.menu_exit);
     30        menu.add(0, MenuOption.END_TURN.ordinal(), 0, R.string.menu_end_turn);
     31        menu.add(0, MenuOption.SAVE.ordinal(), 0, R.string.menu_save);
     32        menu.add(0, MenuOption.MAIN.ordinal(), 0, R.string.menu_main);
     33        menu.add(0, MenuOption.EXIT.ordinal(), 0, R.string.menu_exit);
    4034        return true;
    4135    }
     
    5044    @Override
    5145    public boolean onOptionsItemSelected(MenuItem item) {
    52         switch (item.getItemId()) {
    53                 case MENU_SAVE:
    54                         try {
    55                                 PrintWriter p = new PrintWriter(new FileWriter(android.os.Environment.getExternalStorageDirectory()+"/save.txt"));
    56                                 mThread.mMap.save(p);
    57                                 p.close();
    58                         }catch(IOException ioe) {
    59                                 ioe.printStackTrace();
    60                         }
    61                         break;
    62                 case MENU_MAIN:
    63                         mThread.mGameState = GameState.MAIN_MENU;
    64                         break;
    65             case MENU_EXIT:
    66                 finish();
    67                 break;
     46        int i = item.getItemId();
     47       
     48        if(i == MenuOption.END_TURN.ordinal()) {
     49                mThread.mTurn = Turn.ENEMY_TURN;
     50        }else if(i == MenuOption.SAVE.ordinal()) {
     51                try {
     52                        PrintWriter p = new PrintWriter(new FileWriter(android.os.Environment.getExternalStorageDirectory()+"/save.txt"));
     53                        mThread.mMap.save(p);
     54                        p.close();
     55                }catch(IOException ioe) {
     56                        ioe.printStackTrace();
     57                }
     58        }else if(i == MenuOption.MAIN.ordinal()) {
     59                mThread.mGameState = GameState.MAIN_MENU;
     60        }else if(i == MenuOption.EXIT.ordinal()) {
     61                finish();
    6862        }
    6963
  • src/com/medievaltech/advancewars/GameView.java

    rb660017 rfea4b77  
    1919    class DrawingThread extends Thread {       
    2020        public GameState mGameState;
    21 
    22         /*
    23          * Member (state) fields
    24          */
    25 
     21       
     22        //maybe make this private and make an accessor for it
     23        public Map mMap;
     24       
     25        public Tile grassTile, oceanTile;
     26       
     27        public Turn mTurn;
     28       
     29        //temporary variable to let the enemy control a specific unit
     30        //ownership of units hasn't been implemented yet
     31        public Unit enemyUnit;
     32       
    2633        private int mCanvasHeight = 1;
    2734        private int mCanvasWidth = 1;
    2835
    29         /** Paint to draw the lines on screen. */
    30         private Paint mLinePaint, mTextPaint, mButtonPaint, mTilePaint1, mTilePaint2, mSelectionPaint,
    31                 mUnitPaint;
    32        
    33         //maybe make this private and make an accessor for it
    34         public Map mMap;
    35        
    36         public Tile grassTile, oceanTile;
     36        private Paint mLinePaint, mTextPaint, mButtonPaint, mTilePaint1,
     37                                mTilePaint2, mSelectionPaint, mUnitPaint;
    3738
    3839        /** Indicate whether the surface has been created & is ready to draw */
     
    105106            }
    106107           
     108            enemyUnit = new Soldier(mUnitPaint);
     109           
     110            mMap.getTile(0, 0).addUnit(enemyUnit);
    107111            mMap.getTile(2, 3).addUnit(new Soldier(mUnitPaint));
    108112            mMap.getTile(5, 6).addUnit(new Soldier(mUnitPaint));
     113           
     114            mTurn = Turn.YOUR_TURN;
    109115           
    110116            mGameState = GameState.MAIN_MENU;
     
    129135                    c = mSurfaceHolder.lockCanvas(null);
    130136                    synchronized(mSurfaceHolder) {
     137                        doLogic();
    131138                        doDraw(c);
    132139                    }
     
    169176                Log.i("AdvanceWars", "width: "+mCanvasWidth+", height: "+mCanvasHeight);
    170177            }
     178        }
     179       
     180        private void doLogic() {
     181                if(mTurn == Turn.YOUR_TURN)
     182                        return;
     183               
     184                switch(mGameState) {
     185                case BATTLE_MAP:
     186                        int x = thread.enemyUnit.location.x;
     187                        int y = thread.enemyUnit.location.y;
     188                        thread.mMap.getTile(x, y).removeUnit();
     189                                thread.mMap.getTile(x, y+1).addUnit(thread.enemyUnit);
     190                        mTurn = Turn.YOUR_TURN;
     191                        break;
     192                }
    171193        }
    172194
  • src/com/medievaltech/unit/Artillery.java

    rb660017 rfea4b77  
    55import android.graphics.Paint;
    66import android.graphics.Point;
     7
     8import com.medievaltech.advancewars.Enum.*;
    79
    810public class Artillery extends Unit{
     
    1315                move = 3;
    1416               
    15                 type = Type.LAND;
     17                type = UnitType.LAND;
    1618                minAttackRange = 2;
    1719                maxAttackRange = 4;
  • src/com/medievaltech/unit/Mech.java

    rb660017 rfea4b77  
    55import android.graphics.Paint;
    66import android.graphics.Point;
     7
     8import com.medievaltech.advancewars.Enum.*;
    79
    810public class Mech extends Unit{
     
    1315                move = 2;
    1416               
    15                 type = Type.LAND;
     17                type = UnitType.LAND;
    1618                minAttackRange = 1;
    1719                maxAttackRange = 1;
  • src/com/medievaltech/unit/Recon.java

    rb660017 rfea4b77  
    55import android.graphics.Paint;
    66import android.graphics.Point;
     7
     8import com.medievaltech.advancewars.Enum.*;
    79
    810public class Recon extends Unit{
     
    1315                move = 8;
    1416               
    15                 type = Type.LAND;
     17                type = UnitType.LAND;
    1618                minAttackRange = 1;
    1719                maxAttackRange = 1;
  • src/com/medievaltech/unit/SmTank.java

    rb660017 rfea4b77  
    55import android.graphics.Paint;
    66import android.graphics.Point;
     7
     8import com.medievaltech.advancewars.Enum.*;
    79
    810public class SmTank extends Unit{
     
    1315                move = 7;
    1416               
    15                 type = Type.LAND;
     17                type = UnitType.LAND;
    1618                minAttackRange = 1;
    1719                maxAttackRange = 1;
  • src/com/medievaltech/unit/Soldier.java

    rb660017 rfea4b77  
    55import android.graphics.Paint;
    66import android.graphics.Point;
     7
     8import com.medievaltech.advancewars.Enum.*;
    79
    810public class Soldier extends Unit{
     
    1315                move = 3;
    1416               
    15                 type = Type.LAND;
     17                type = UnitType.LAND;
    1618                minAttackRange = 1;
    1719                maxAttackRange = 1;
  • src/com/medievaltech/unit/Unit.java

    rb660017 rfea4b77  
    22
    33import java.util.*;
     4
    45import android.graphics.*;
    56
    6 public abstract class Unit
    7 {
    8         public enum Type
    9         {
    10                 LAND,SEA,AIR
    11         }
     7import com.medievaltech.advancewars.Enum.*;
    128
     9public abstract class Unit {
    1310        private Paint p;
    1411       
    15         public Type type;
     12        public UnitType type;
    1613        //public Player owner;
    1714       
Note: See TracChangeset for help on using the changeset viewer.