Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.gwynbleidd.verstkagame;
- import android.graphics.Point;
- import android.os.Bundle;
- import android.support.v7.app.AppCompatActivity;
- import android.view.Display;
- public class GameActivity extends AppCompatActivity {
- Integer[][] matrix1;
- Integer[][] matrix2;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- getSupportActionBar().hide();
- Display display = getWindowManager().getDefaultDisplay();
- Point size = new Point();
- display.getSize(size);
- int width = size.x;
- int height = size.y;
- matrix1 = (Integer[][]) getIntent().getExtras().getSerializable("UnitMatrixPlayerOne");
- matrix2 = (Integer[][]) getIntent().getExtras().getSerializable("UnitMatrixPlayerTwo");
- BattleField battleField = new BattleField(this, width, height, matrix1, matrix2);
- setContentView(battleField);
- }
- }
- package com.example.gwynbleidd.verstkagame;
- import android.content.Context;
- import android.content.Intent;
- import android.graphics.Point;
- import android.media.AudioManager;
- import android.media.SoundPool;
- import android.os.Bundle;
- import android.support.v7.app.AppCompatActivity;
- import android.view.Display;
- import android.view.MotionEvent;
- public class NewGame extends AppCompatActivity {
- PlayerOneArmy playerOneArmy;
- Bundle mBundle;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- getSupportActionBar().hide();
- Display display = getWindowManager().getDefaultDisplay();
- Point size = new Point();
- display.getSize(size);
- int width = size.x;
- int height = size.y;
- playerOneArmy = new PlayerOneArmy(getApplicationContext(), width, height, this);
- setContentView(playerOneArmy);
- mBundle = new Bundle();
- }
- @Override
- protected void onStop() {
- Intent intent = new Intent(getApplicationContext(), NewGame2.class);
- mBundle.putSerializable("UnitMatrix", playerOneArmy.matrix);
- intent.putExtras(mBundle);
- startActivity(intent);
- super.onStop();
- }
- @Override
- protected void onDestroy() {
- super.onDestroy();
- }
- }
- package com.example.gwynbleidd.verstkagame;
- import android.content.Context;
- import android.graphics.Bitmap;
- import android.graphics.BitmapFactory;
- import android.graphics.Canvas;
- import android.graphics.Color;
- import android.graphics.Paint;
- import android.support.v7.app.AppCompatActivity;
- import android.view.MotionEvent;
- import android.view.View;
- import android.widget.ImageView;
- public class PlayerOneArmy extends View {
- Context context;
- Integer cellWidth = 1;
- Integer cellHeight = 1;
- Integer indexOfCellY = 0;
- Integer indexOfCellX = 0;
- Integer deltaScreenX = 0;
- Integer deltaScreenY = 0;
- Integer indexOfCellOnClickY;
- Integer indexOfCellOnClickX;
- Integer width;
- Integer height;
- Integer[][] matrix = new Integer[6][8];
- Unit[][] unitMatrix = new Unit[6][8];
- Bitmap redImage;
- Bitmap blueImage;
- Bitmap archImage;
- Bitmap btnClassNonePressed ;
- Bitmap btnClassPressed;
- Bitmap btnRaceNonePressed;
- Bitmap btnRacePressed;
- ImageView imageView;
- OurButton btnDeleteUnit;
- OurButton btnStartGame;
- OurButton btnMan;
- OurButton btnDwarf;
- OurButton btnElf;
- OurButton btnFrog;
- OurButton btnRanged;
- OurButton btnSword;
- OurButton btnHorse;
- OurButton btnMage;
- public long startTime1 = 0;
- public long elapsedTime1 = 0;
- Float dx;
- Float dy;
- Boolean fieldIsPressed = false;
- Boolean flag = false;
- AppCompatActivity activity;
- public Integer getCellWidth() {
- return cellWidth;
- }
- public void setCellWidth(Integer cellWidth) {
- this.cellWidth = cellWidth;
- }
- public Integer getCellHeight() {
- return cellHeight;
- }
- public void setCellHeight(Integer cellHeight) {
- this.cellHeight = cellHeight;
- }
- public Integer getIndexOfCellY() {
- return indexOfCellY;
- }
- public void setIndexOfCellY(Integer indexOfCellY) {
- this.indexOfCellY = indexOfCellY;
- }
- public Integer getIndexOfCellX() {
- return indexOfCellX;
- }
- public void setIndexOfCellX(Integer indexOfCellX) {
- this.indexOfCellX = indexOfCellX;
- }
- public Integer getDeltaScreenX() {
- return deltaScreenX;
- }
- public void setDeltaScreenX(Integer deltaScreenX) {
- this.deltaScreenX = deltaScreenX;
- }
- public Integer getDeltaScreenY() {
- return deltaScreenY;
- }
- public void setDeltaScreenY(Integer deltaScreenY) {
- this.deltaScreenY = deltaScreenY;
- }
- Paint p;
- Unit redUnit;
- Unit blueUnit;
- Archer archer;
- Unit replaceableUnit;
- Unit replaceableUnit2;
- Timer t;
- Unit unitSwordMan;
- Unit unitSwordFrog;
- Unit unitSwordElf;
- Unit unitSwordDwarf;
- Unit unitRangedMan;
- Unit unitRangedFrog;
- Unit unitRangedElf;
- Unit unitRangedDwarf;
- Unit unitMageMan;
- Unit unitMageFrog;
- Unit unitMageElf;
- Unit unitMageDwarf;
- Unit unitHorseMan;
- Unit unitHorseFrog;
- Unit unitHorseElf;
- Unit unitHorseDwarf;
- public PlayerOneArmy(Context context, Integer width, Integer height, AppCompatActivity activity) {
- super(context);
- this.context = context;
- this.cellWidth = width / 8;
- this.cellHeight = height / 12;
- this.deltaScreenX = width / 8;
- this.deltaScreenY = height / 6;
- this.width = width;
- this.height = height;
- this.startTime1 = System.currentTimeMillis();
- this.activity = activity;
- btnRaceNonePressed = BitmapFactory.decodeResource(getResources(), R.drawable.test2);
- btnRacePressed = BitmapFactory.decodeResource(getResources(), R.drawable.test);
- btnClassNonePressed = BitmapFactory.decodeResource(getResources(), R.drawable.btnattoff);
- btnClassPressed = BitmapFactory.decodeResource(getResources(), R.drawable.btnatton);
- btnStartGame = new OurButton(btnClassNonePressed, btnClassPressed ,getResources(),cellWidth,cellHeight, 2);
- redImage = BitmapFactory.decodeResource(getResources(), R.drawable.mage);
- blueImage = BitmapFactory.decodeResource(getResources(), R.drawable.swordman);
- archImage = BitmapFactory.decodeResource(getResources(), R.drawable.archer);
- // redUnit = new Unit("red", getResources(), cellWidth, cellHeight, redImage, false,10,10,0,2,1);
- // blueUnit = new Unit("blue", getResources(), cellWidth, cellHeight, blueImage,false,20,5,0,2,1);
- // archer = new Archer("blue", getResources(), cellWidth, cellHeight, archImage,false,10,10,0,2,1);
- replaceableUnit = new Unit("SwordMan", getResources(), cellWidth, cellHeight, BitmapFactory.decodeResource(getResources(), R.drawable.swordman), true);
- unitSwordMan = new Unit("blue", getResources(), cellWidth, cellHeight, blueImage,false,20,5,0,2,1);
- unitMageMan = new Unit("red", getResources(), cellWidth, cellHeight, redImage, false,10,10,0,2,1);
- unitRangedMan = new Archer("blue", getResources(), cellWidth, cellHeight, archImage,false,10,10,0,2,1);
- btnMan = new OurButton(btnRaceNonePressed, btnRacePressed, getResources(), cellWidth, cellHeight, 1);
- btnDwarf = new OurButton(btnRaceNonePressed, btnRacePressed, getResources(), cellWidth, cellHeight, 1);
- btnElf = new OurButton(btnRaceNonePressed, btnRacePressed, getResources(), cellWidth, cellHeight, 1);
- btnFrog = new OurButton(btnRaceNonePressed, btnRacePressed, getResources(), cellWidth, cellHeight, 1);
- btnMage = new OurButton(btnClassNonePressed, btnClassPressed ,getResources(),cellWidth,cellHeight, 1);
- btnSword = new OurButton(btnClassNonePressed, btnClassPressed ,getResources(),cellWidth,cellHeight, 1);
- btnHorse = new OurButton(btnClassNonePressed, btnClassPressed ,getResources(),cellWidth,cellHeight, 1);
- btnRanged = new OurButton(btnClassNonePressed, btnClassPressed ,getResources(),cellWidth,cellHeight, 1);
- btnDeleteUnit = new OurButton(btnRaceNonePressed, btnRacePressed, getResources(), cellWidth, cellHeight, 1);
- btnMan.isPressed = true;
- btnSword.isPressed = true;
- for (int i = 0; i < 6; i++) {
- for (int j = 0; j < 8; j++) {
- this.matrix[i][j] = 0;
- this.unitMatrix[i][j] = new Unit("ground", getResources(), cellWidth, cellHeight, BitmapFactory.decodeResource(getResources(), R.drawable.ground),true);
- }
- }
- p = new Paint();
- t = new Timer(this, Integer.MAX_VALUE, 100);
- t.start();
- }
- @Override
- protected void onDraw(Canvas canvas) {
- Paint pBlack = new Paint();
- pBlack.setColor(Color.BLACK);
- pBlack.setStrokeWidth(canvas.getWidth()/150);
- Paint pYellow = new Paint();
- pYellow.setColor(Color.YELLOW);
- pYellow.setStrokeWidth(canvas.getWidth()/150);
- pYellow.setStyle(Paint.Style.STROKE);
- Paint pGreen = new Paint();
- pGreen.setColor(Color.GREEN);
- pGreen.setStrokeWidth(canvas.getWidth()/150);
- pGreen.setStyle(Paint.Style.STROKE);
- Paint pRed = new Paint();
- pRed.setColor(Color.RED);
- pRed.setStrokeWidth(canvas.getWidth()/150);
- pRed.setStyle(Paint.Style.STROKE);
- Paint pText = new Paint();
- pText.setTextSize(cellHeight / 2);
- Paint pPlace = new Paint();
- pPlace.setStyle(Paint.Style.STROKE);
- pPlace.setColor(Color.BLUE);
- pPlace.setAlpha(127);
- btnStartGame.draw(canvas, deltaScreenX * cellWidth * 2f, deltaScreenY + cellHeight * 8.25f);
- for (int i = 0; i < 9; i++) {
- canvas.drawLine(deltaScreenX, i*cellHeight+deltaScreenY, canvas.getWidth() - deltaScreenX, i*cellHeight + deltaScreenY, pBlack);
- }
- for (int i = 0; i < 7; i++) {
- canvas.drawLine(i*cellWidth + deltaScreenX, deltaScreenY, i*cellWidth + deltaScreenX, canvas.getHeight() - deltaScreenY, pBlack);
- }
- for (int i = 0; i < 6; i++) {
- for (int j = 0; j < 8; j++) {
- unitMatrix[i][j].drawInCell(canvas, deltaScreenX + cellWidth*i * 1f, deltaScreenY + cellHeight*j * 1f);
- }
- }
- replaceableUnit.drawOutCell(canvas,+ cellWidth * 6,0);
- btnMan.draw(canvas, deltaScreenX * 1f, 0f);
- canvas.drawText("Man", 0f, deltaScreenY * 0.2f, pText);
- btnDwarf.draw(canvas, deltaScreenX * 1f, deltaScreenY * 0.25f);
- canvas.drawText("Dwarf", 0f, deltaScreenY * 0.45f, pText);
- btnElf.draw(canvas, deltaScreenX * 1f, deltaScreenY * 0.5f);
- canvas.drawText("Elf", 0f, deltaScreenY * 0.7f, pText);
- btnFrog.draw(canvas, deltaScreenX * 1f, deltaScreenY * 0.75f);
- canvas.drawText("Frog", 0f, deltaScreenY * 0.95f, pText);
- btnSword.draw(canvas, deltaScreenX + cellWidth * 3f, 0f);
- canvas.drawText("Sword", deltaScreenX + cellWidth * 2f, deltaScreenY * 0.2f, pText);
- btnMage.draw(canvas, deltaScreenX + cellWidth * 3f, deltaScreenY * 0.25f);
- canvas.drawText("Mage", deltaScreenX + cellWidth * 2f, deltaScreenY * 0.45f, pText);
- btnHorse.draw(canvas, deltaScreenX + cellWidth * 3f, deltaScreenY * 0.5f);
- canvas.drawText("Horse", deltaScreenX + cellWidth * 2f, deltaScreenY * 0.7f, pText);
- btnRanged.draw(canvas, deltaScreenX + cellWidth * 3f, deltaScreenY * 0.75f);
- canvas.drawText("Ranged", deltaScreenX + cellWidth * 2f, deltaScreenY * 0.95f, pText);
- btnStartGame.draw(canvas ,deltaScreenX + cellWidth * 6f, deltaScreenY + cellHeight * 3f);
- if (fieldIsPressed) {
- for (int i = 0; i < 6; i++) {
- for (int j = 0; j < 8; j++) {
- if (!unitMatrix[indexOfCellX][indexOfCellY].isGround())
- if (unitMatrix[i][j].isGround()) {
- if (Math.abs(indexOfCellX - i) + Math.abs(indexOfCellY - j) <= unitMatrix[indexOfCellX][indexOfCellY].MOVE) {
- canvas.drawRect(i * cellWidth + deltaScreenX, j * cellHeight + deltaScreenY, (i + 1) * cellWidth + deltaScreenX, (j + 1) * cellHeight + deltaScreenY, pGreen);
- }
- } else {
- if (Math.abs(indexOfCellX - i) + Math.abs(indexOfCellY - j) <= unitMatrix[indexOfCellX][indexOfCellY].RANGE) {
- canvas.drawRect(i * cellWidth + deltaScreenX, j * cellHeight + deltaScreenY, (i + 1) * cellWidth + deltaScreenX, (j + 1) * cellHeight + deltaScreenY, pRed);
- }
- }
- }
- }
- unitMatrix[indexOfCellX][indexOfCellY].drawOutCell(canvas,+ cellWidth * 6, height - deltaScreenY);
- canvas.drawRect(indexOfCellX * cellWidth + deltaScreenX, indexOfCellY * cellHeight + deltaScreenY, (indexOfCellX + 1) * cellWidth + deltaScreenX, (indexOfCellY + 1) * cellHeight + deltaScreenY, pYellow);
- }
- if (replaceableUnit2 != null)
- replaceableUnit2.drawInCell(canvas, dx, dy);
- if (!unitMatrix[indexOfCellX][indexOfCellY].isGround()) {
- btnDeleteUnit.draw(canvas, deltaScreenX + cellWidth * 2f, deltaScreenY + cellHeight * 9.25f);
- }
- for (int i = 0; i < 6; i++) {
- for (int j = 5; j < 8; j++) {
- canvas.drawRect(i * cellWidth + deltaScreenX, j * cellHeight + deltaScreenY, (i + 1) * cellWidth + deltaScreenX, (j + 1) * cellHeight + deltaScreenY, pPlace);
- }
- }
- }
- @Override
- public boolean onTouchEvent(MotionEvent event) {
- if ((event.getX() >= deltaScreenX) && (event.getX() <= cellWidth * 6 + deltaScreenX) && (event.getY() >= deltaScreenY) && (event.getY() <= cellHeight * 8 + deltaScreenY)) {
- for (int i = 1; i < 9; i++) {
- if (event.getY() > cellHeight * (i - 1) + deltaScreenY && event.getY() < cellHeight * i + deltaScreenY) {
- this.indexOfCellY = i - 1;
- }
- }
- for (int i = 1; i < 7; i++) {
- if (event.getX() > cellWidth * (i - 1) + deltaScreenX && event.getX() < cellWidth * i + deltaScreenX) {
- this.indexOfCellX = i - 1;
- }
- }
- fieldIsPressed = true;
- } else {
- fieldIsPressed = false;
- }
- //Кнопки, отвечающие за расу юнита (тут ничего менять не надо)
- if ((event.getX() >= deltaScreenX * 1f) && (event.getX() <= deltaScreenX + cellWidth * 2f) && (event.getY() >= 0f) && (event.getY() <= deltaScreenY * 0.25f) && (event.getAction() == MotionEvent.ACTION_DOWN)) {
- btnMan.isPressed = true;
- btnDwarf.isPressed = false;
- btnElf.isPressed = false;
- btnFrog.isPressed = false;
- } else if ((event.getX() >= deltaScreenX * 1f) && (event.getX() <= deltaScreenX + cellWidth * 2f) && (event.getY() >= deltaScreenY * 0.25f) && (event.getY() <= deltaScreenY * 0.5f) && (event.getAction() == MotionEvent.ACTION_DOWN)) {
- btnMan.isPressed = false;
- btnDwarf.isPressed = true;
- btnElf.isPressed = false;
- btnFrog.isPressed = false;
- } else if ((event.getX() >= deltaScreenX * 1f) && (event.getX() <= deltaScreenX + cellWidth * 2f) && (event.getY() >= deltaScreenY * 0.5f) && (event.getY() <= deltaScreenY * 0.75f) && (event.getAction() == MotionEvent.ACTION_DOWN)) {
- btnMan.isPressed = false;
- btnDwarf.isPressed = false;
- btnElf.isPressed = true;
- btnFrog.isPressed = false;
- } else if ((event.getX() >= deltaScreenX * 1f) && (event.getX() <= deltaScreenX + cellWidth * 2f) && (event.getY() >= deltaScreenY * 0.75f) && (event.getY() <= deltaScreenY * 1f) && (event.getAction() == MotionEvent.ACTION_DOWN)) {
- btnMan.isPressed = false;
- btnDwarf.isPressed = false;
- btnElf.isPressed = false;
- btnFrog.isPressed = true;
- }
- //Кнопки, отвечающие за класс юнита (тут ничего менять не надо)
- if ((event.getX() >= deltaScreenX + cellWidth * 3f) && (event.getX() <= deltaScreenX + cellWidth * 5f) && (event.getY() >= 0f) && (event.getY() <= deltaScreenY * 0.25f) && (event.getAction() == MotionEvent.ACTION_DOWN)) {
- btnSword.isPressed = true;
- btnMage.isPressed = false;
- btnHorse.isPressed = false;
- btnRanged.isPressed = false;
- } else if ((event.getX() >= deltaScreenX + cellWidth * 3f) && (event.getX() <= deltaScreenX + cellWidth * 5f) && (event.getY() >= deltaScreenY * 0.25f) && (event.getY() <= deltaScreenY * 0.5f) && (event.getAction() == MotionEvent.ACTION_DOWN)) {
- btnSword.isPressed = false;
- btnMage.isPressed = true;
- btnHorse.isPressed = false;
- btnRanged.isPressed = false;
- } else if ((event.getX() >= deltaScreenX + cellWidth * 3f) && (event.getX() <= deltaScreenX + cellWidth * 5f) && (event.getY() >= deltaScreenY * 0.5f) && (event.getY() <= deltaScreenY * 0.75f) && (event.getAction() == MotionEvent.ACTION_DOWN)) {
- btnSword.isPressed = false;
- btnMage.isPressed = false;
- btnHorse.isPressed = true;
- btnRanged.isPressed = false;
- } else if ((event.getX() >= deltaScreenX + cellWidth * 3f) && (event.getX() <= deltaScreenX + cellWidth * 5f) && (event.getY() >= deltaScreenY * 0.75f) && (event.getY() <= deltaScreenY * 1f) && (event.getAction() == MotionEvent.ACTION_DOWN)) {
- btnSword.isPressed = false;
- btnMage.isPressed = false;
- btnHorse.isPressed = false;
- btnRanged.isPressed = true;
- }
- // Сюда надо вставлять юнитов в зависимости от того, какая комбинация кнопок нажата
- if ((btnMan.isPressed) && (btnSword.isPressed)) {
- replaceableUnit = unitSwordMan;
- } else if ((btnMan.isPressed) && (btnRanged.isPressed)) {
- replaceableUnit = unitRangedMan;
- } else if ((btnMan.isPressed) && (btnMage.isPressed)) {
- replaceableUnit = unitMageMan;
- }
- //Часть кода, отвечающая за перенос юнита на поле
- if (((event.getY() < deltaScreenY) && (event.getX() > deltaScreenX + cellWidth * 5)) || (flag)) {
- replaceableUnit2 = replaceableUnit;
- dx = event.getX();
- dy = event.getY();
- flag = true;
- if (event.getAction() == MotionEvent.ACTION_UP) {
- flag = false;
- if ((fieldIsPressed) && (indexOfCellY >= 5)) {
- unitMatrix[indexOfCellX][indexOfCellY] = replaceableUnit2;
- //В этой части заполняется массив, который потом передастся в BattleField, так что при добавлении новых юнитов, надо прописывать сюда их заполнение в массив
- if (replaceableUnit2 == unitMageMan)
- matrix[indexOfCellX][indexOfCellY] = 1;
- else if (replaceableUnit2 == unitSwordMan)
- matrix[indexOfCellX][indexOfCellY] = 2;
- else if (replaceableUnit2 == unitRangedMan)
- matrix[indexOfCellX][indexOfCellY] = 3;
- }
- replaceableUnit2 = null;
- }
- }
- //При нажатии на кнопку удаления, юнит заменяется на землю
- if ((event.getX() >= deltaScreenX + cellWidth * 2f) && (event.getX() <= deltaScreenX + cellWidth * 4f) && (event.getY() >= deltaScreenY + cellHeight * 9.25f) && (event.getY() <= deltaScreenY + cellHeight * 9.75f) && (event.getAction() == MotionEvent.ACTION_DOWN)) {
- matrix[indexOfCellX][indexOfCellY] = 0;
- unitMatrix[indexOfCellX][indexOfCellY] = new Unit("ground", getResources(), cellWidth, cellHeight, BitmapFactory.decodeResource(getResources(), R.drawable.ground),true);
- }
- if ((event.getX() >= deltaScreenX + cellWidth * 6f) && (event.getX() <= deltaScreenX + cellWidth * 7f) && (event.getY() >= deltaScreenY + cellHeight * 3f) && (event.getY() <= deltaScreenY + cellHeight * 5f) && (event.getAction() == MotionEvent.ACTION_DOWN)) {
- btnStartGame.isPressed = true;
- activity.finish();
- t.onFinish();
- //activity.startActivity(intent);
- }
- return true;
- }
- }
- package com.example.gwynbleidd.verstkagame;
- import android.content.Context;
- import android.graphics.Bitmap;
- import android.graphics.BitmapFactory;
- import android.graphics.Canvas;
- import android.graphics.Color;
- import android.graphics.Paint;
- import android.support.v7.app.AppCompatActivity;
- import android.view.MotionEvent;
- import android.view.View;
- import android.widget.ImageView;
- public class PlayerTwoArmy extends View {
- Context context;
- Integer cellWidth = 1;
- Integer cellHeight = 1;
- Integer indexOfCellY = 0;
- Integer indexOfCellX = 0;
- Integer deltaScreenX = 0;
- Integer deltaScreenY = 0;
- Integer indexOfCellOnClickY;
- Integer indexOfCellOnClickX;
- Integer width;
- Integer height;
- Integer[][] matrix = new Integer[6][8];
- Unit[][] unitMatrix = new Unit[6][8];
- Bitmap redImage;
- Bitmap blueImage;
- Bitmap archImage;
- Bitmap btnClassNonePressed;
- Bitmap btnClassPressed;
- Bitmap btnRaceNonePressed;
- Bitmap btnRacePressed;
- ImageView imageView;
- OurButton btnDeleteUnit;
- OurButton btnStartGame;
- OurButton btnMan;
- OurButton btnDwarf;
- OurButton btnElf;
- OurButton btnFrog;
- OurButton btnRanged;
- OurButton btnSword;
- OurButton btnHorse;
- OurButton btnMage;
- public long startTime1 = 0;
- public long elapsedTime1 = 0;
- Float dx;
- Float dy;
- Boolean fieldIsPressed = false;
- Boolean flag = false;
- AppCompatActivity activity;
- public Integer getCellWidth() {
- return cellWidth;
- }
- public void setCellWidth(Integer cellWidth) {
- this.cellWidth = cellWidth;
- }
- public Integer getCellHeight() {
- return cellHeight;
- }
- public void setCellHeight(Integer cellHeight) {
- this.cellHeight = cellHeight;
- }
- public Integer getIndexOfCellY() {
- return indexOfCellY;
- }
- public void setIndexOfCellY(Integer indexOfCellY) {
- this.indexOfCellY = indexOfCellY;
- }
- public Integer getIndexOfCellX() {
- return indexOfCellX;
- }
- public void setIndexOfCellX(Integer indexOfCellX) {
- this.indexOfCellX = indexOfCellX;
- }
- public Integer getDeltaScreenX() {
- return deltaScreenX;
- }
- public void setDeltaScreenX(Integer deltaScreenX) {
- this.deltaScreenX = deltaScreenX;
- }
- public Integer getDeltaScreenY() {
- return deltaScreenY;
- }
- public void setDeltaScreenY(Integer deltaScreenY) {
- this.deltaScreenY = deltaScreenY;
- }
- Paint p;
- Unit redUnit;
- Unit blueUnit;
- Archer archer;
- Unit replaceableUnit;
- Unit replaceableUnit2;
- Timer t;
- Unit unitSwordMan;
- Unit unitSwordFrog;
- Unit unitSwordElf;
- Unit unitSwordDwarf;
- Unit unitRangedMan;
- Unit unitRangedFrog;
- Unit unitRangedElf;
- Unit unitRangedDwarf;
- Unit unitMageMan;
- Unit unitMageFrog;
- Unit unitMageElf;
- Unit unitMageDwarf;
- Unit unitHorseMan;
- Unit unitHorseFrog;
- Unit unitHorseElf;
- Unit unitHorseDwarf;
- public PlayerTwoArmy(Context context, Integer width, Integer height, AppCompatActivity activity) {
- super(context);
- this.context = context;
- this.cellWidth = width / 8;
- this.cellHeight = height / 12;
- this.deltaScreenX = width / 8;
- this.deltaScreenY = height / 6;
- this.width = width;
- this.height = height;
- this.startTime1 = System.currentTimeMillis();
- this.activity = activity;
- btnRaceNonePressed = BitmapFactory.decodeResource(getResources(), R.drawable.test2);
- btnRacePressed = BitmapFactory.decodeResource(getResources(), R.drawable.test);
- btnClassNonePressed = BitmapFactory.decodeResource(getResources(), R.drawable.btnattoff);
- btnClassPressed = BitmapFactory.decodeResource(getResources(), R.drawable.btnatton);
- btnStartGame = new OurButton(btnClassNonePressed, btnClassPressed, getResources(), cellWidth, cellHeight, 2);
- redImage = BitmapFactory.decodeResource(getResources(), R.drawable.mage);
- blueImage = BitmapFactory.decodeResource(getResources(), R.drawable.swordman);
- archImage = BitmapFactory.decodeResource(getResources(), R.drawable.archer);
- // redUnit = new Unit("red", getResources(), cellWidth, cellHeight, redImage, false,10,10,0,2,1);
- // blueUnit = new Unit("blue", getResources(), cellWidth, cellHeight, blueImage,false,20,5,0,2,1);
- // archer = new Archer("blue", getResources(), cellWidth, cellHeight, archImage,false,10,10,0,2,1);
- replaceableUnit = new Unit("SwordMan", getResources(), cellWidth, cellHeight, BitmapFactory.decodeResource(getResources(), R.drawable.swordman), true);
- unitSwordMan = new Unit("blue", getResources(), cellWidth, cellHeight, blueImage, false, 20, 5, 0, 2, 1);
- unitMageMan = new Unit("red", getResources(), cellWidth, cellHeight, redImage, false, 10, 10, 0, 2, 1);
- unitRangedMan = new Archer("blue", getResources(), cellWidth, cellHeight, archImage, false, 10, 10, 0, 2, 1);
- btnMan = new OurButton(btnRaceNonePressed, btnRacePressed, getResources(), cellWidth, cellHeight, 1);
- btnDwarf = new OurButton(btnRaceNonePressed, btnRacePressed, getResources(), cellWidth, cellHeight, 1);
- btnElf = new OurButton(btnRaceNonePressed, btnRacePressed, getResources(), cellWidth, cellHeight, 1);
- btnFrog = new OurButton(btnRaceNonePressed, btnRacePressed, getResources(), cellWidth, cellHeight, 1);
- btnMage = new OurButton(btnClassNonePressed, btnClassPressed, getResources(), cellWidth, cellHeight, 1);
- btnSword = new OurButton(btnClassNonePressed, btnClassPressed, getResources(), cellWidth, cellHeight, 1);
- btnHorse = new OurButton(btnClassNonePressed, btnClassPressed, getResources(), cellWidth, cellHeight, 1);
- btnRanged = new OurButton(btnClassNonePressed, btnClassPressed, getResources(), cellWidth, cellHeight, 1);
- btnDeleteUnit = new OurButton(btnRaceNonePressed, btnRacePressed, getResources(), cellWidth, cellHeight, 1);
- btnMan.isPressed = true;
- btnSword.isPressed = true;
- for (int i = 0; i < 6; i++) {
- for (int j = 0; j < 8; j++) {
- this.matrix[i][j] = 0;
- this.unitMatrix[i][j] = new Unit("ground", getResources(), cellWidth, cellHeight, BitmapFactory.decodeResource(getResources(), R.drawable.ground), true);
- }
- }
- p = new Paint();
- t = new Timer(this, Integer.MAX_VALUE, 100);
- t.start();
- }
- @Override
- protected void onDraw(Canvas canvas) {
- Paint pBlack = new Paint();
- pBlack.setColor(Color.BLACK);
- pBlack.setStrokeWidth(canvas.getWidth() / 150);
- Paint pYellow = new Paint();
- pYellow.setColor(Color.YELLOW);
- pYellow.setStrokeWidth(canvas.getWidth() / 150);
- pYellow.setStyle(Paint.Style.STROKE);
- Paint pGreen = new Paint();
- pGreen.setColor(Color.GREEN);
- pGreen.setStrokeWidth(canvas.getWidth() / 150);
- pGreen.setStyle(Paint.Style.STROKE);
- Paint pRed = new Paint();
- pRed.setColor(Color.RED);
- pRed.setStrokeWidth(canvas.getWidth() / 150);
- pRed.setStyle(Paint.Style.STROKE);
- Paint pText = new Paint();
- pText.setTextSize(cellHeight / 2);
- Paint pPlace = new Paint();
- pPlace.setStyle(Paint.Style.STROKE);
- pPlace.setColor(Color.BLUE);
- pPlace.setAlpha(127);
- btnStartGame.draw(canvas, deltaScreenX * cellWidth * 2f, deltaScreenY + cellHeight * 8.25f);
- for (int i = 0; i < 9; i++) {
- canvas.drawLine(deltaScreenX, i * cellHeight + deltaScreenY, canvas.getWidth() - deltaScreenX, i * cellHeight + deltaScreenY, pBlack);
- }
- for (int i = 0; i < 7; i++) {
- canvas.drawLine(i * cellWidth + deltaScreenX, deltaScreenY, i * cellWidth + deltaScreenX, canvas.getHeight() - deltaScreenY, pBlack);
- }
- for (int i = 0; i < 6; i++) {
- for (int j = 0; j < 8; j++) {
- unitMatrix[i][j].drawInCell(canvas, deltaScreenX + cellWidth * i * 1f, deltaScreenY + cellHeight * j * 1f);
- }
- }
- replaceableUnit.drawOutCell(canvas, +cellWidth * 6, 0);
- btnMan.draw(canvas, deltaScreenX * 1f, 0f);
- canvas.drawText("Man", 0f, deltaScreenY * 0.2f, pText);
- btnDwarf.draw(canvas, deltaScreenX * 1f, deltaScreenY * 0.25f);
- canvas.drawText("Dwarf", 0f, deltaScreenY * 0.45f, pText);
- btnElf.draw(canvas, deltaScreenX * 1f, deltaScreenY * 0.5f);
- canvas.drawText("Elf", 0f, deltaScreenY * 0.7f, pText);
- btnFrog.draw(canvas, deltaScreenX * 1f, deltaScreenY * 0.75f);
- canvas.drawText("Frog", 0f, deltaScreenY * 0.95f, pText);
- btnSword.draw(canvas, deltaScreenX + cellWidth * 3f, 0f);
- canvas.drawText("Sword", deltaScreenX + cellWidth * 2f, deltaScreenY * 0.2f, pText);
- btnMage.draw(canvas, deltaScreenX + cellWidth * 3f, deltaScreenY * 0.25f);
- canvas.drawText("Mage", deltaScreenX + cellWidth * 2f, deltaScreenY * 0.45f, pText);
- btnHorse.draw(canvas, deltaScreenX + cellWidth * 3f, deltaScreenY * 0.5f);
- canvas.drawText("Horse", deltaScreenX + cellWidth * 2f, deltaScreenY * 0.7f, pText);
- btnRanged.draw(canvas, deltaScreenX + cellWidth * 3f, deltaScreenY * 0.75f);
- canvas.drawText("Ranged", deltaScreenX + cellWidth * 2f, deltaScreenY * 0.95f, pText);
- btnStartGame.draw(canvas, deltaScreenX + cellWidth * 6f, deltaScreenY + cellHeight * 3f);
- if (fieldIsPressed) {
- for (int i = 0; i < 6; i++) {
- for (int j = 0; j < 8; j++) {
- if (!unitMatrix[indexOfCellX][indexOfCellY].isGround())
- if (unitMatrix[i][j].isGround()) {
- if (Math.abs(indexOfCellX - i) + Math.abs(indexOfCellY - j) <= unitMatrix[indexOfCellX][indexOfCellY].MOVE) {
- canvas.drawRect(i * cellWidth + deltaScreenX, j * cellHeight + deltaScreenY, (i + 1) * cellWidth + deltaScreenX, (j + 1) * cellHeight + deltaScreenY, pGreen);
- }
- } else {
- if (Math.abs(indexOfCellX - i) + Math.abs(indexOfCellY - j) <= unitMatrix[indexOfCellX][indexOfCellY].RANGE) {
- canvas.drawRect(i * cellWidth + deltaScreenX, j * cellHeight + deltaScreenY, (i + 1) * cellWidth + deltaScreenX, (j + 1) * cellHeight + deltaScreenY, pRed);
- }
- }
- }
- }
- unitMatrix[indexOfCellX][indexOfCellY].drawOutCell(canvas, +cellWidth * 6, height - deltaScreenY);
- canvas.drawRect(indexOfCellX * cellWidth + deltaScreenX, indexOfCellY * cellHeight + deltaScreenY, (indexOfCellX + 1) * cellWidth + deltaScreenX, (indexOfCellY + 1) * cellHeight + deltaScreenY, pYellow);
- }
- if (replaceableUnit2 != null)
- replaceableUnit2.drawInCell(canvas, dx, dy);
- if (!unitMatrix[indexOfCellX][indexOfCellY].isGround()) {
- btnDeleteUnit.draw(canvas, deltaScreenX + cellWidth * 2f, deltaScreenY + cellHeight * 9.25f);
- }
- for (int i = 0; i < 6; i++) {
- for (int j = 0; j < 3; j++) {
- canvas.drawRect(i * cellWidth + deltaScreenX, j * cellHeight + deltaScreenY, (i + 1) * cellWidth + deltaScreenX, (j + 1) * cellHeight + deltaScreenY, pPlace);
- }
- }
- }
- @Override
- public boolean onTouchEvent(MotionEvent event) {
- if ((event.getX() >= deltaScreenX) && (event.getX() <= cellWidth * 6 + deltaScreenX) && (event.getY() >= deltaScreenY) && (event.getY() <= cellHeight * 8 + deltaScreenY)) {
- for (int i = 1; i < 9; i++) {
- if (event.getY() > cellHeight * (i - 1) + deltaScreenY && event.getY() < cellHeight * i + deltaScreenY) {
- this.indexOfCellY = i - 1;
- }
- }
- for (int i = 1; i < 7; i++) {
- if (event.getX() > cellWidth * (i - 1) + deltaScreenX && event.getX() < cellWidth * i + deltaScreenX) {
- this.indexOfCellX = i - 1;
- }
- }
- fieldIsPressed = true;
- } else {
- fieldIsPressed = false;
- }
- //Кнопки, отвечающие за расу юнита (тут ничего менять не надо)
- if ((event.getX() >= deltaScreenX * 1f) && (event.getX() <= deltaScreenX + cellWidth * 2f) && (event.getY() >= 0f) && (event.getY() <= deltaScreenY * 0.25f) && (event.getAction() == MotionEvent.ACTION_DOWN)) {
- btnMan.isPressed = true;
- btnDwarf.isPressed = false;
- btnElf.isPressed = false;
- btnFrog.isPressed = false;
- } else if ((event.getX() >= deltaScreenX * 1f) && (event.getX() <= deltaScreenX + cellWidth * 2f) && (event.getY() >= deltaScreenY * 0.25f) && (event.getY() <= deltaScreenY * 0.5f) && (event.getAction() == MotionEvent.ACTION_DOWN)) {
- btnMan.isPressed = false;
- btnDwarf.isPressed = true;
- btnElf.isPressed = false;
- btnFrog.isPressed = false;
- } else if ((event.getX() >= deltaScreenX * 1f) && (event.getX() <= deltaScreenX + cellWidth * 2f) && (event.getY() >= deltaScreenY * 0.5f) && (event.getY() <= deltaScreenY * 0.75f) && (event.getAction() == MotionEvent.ACTION_DOWN)) {
- btnMan.isPressed = false;
- btnDwarf.isPressed = false;
- btnElf.isPressed = true;
- btnFrog.isPressed = false;
- } else if ((event.getX() >= deltaScreenX * 1f) && (event.getX() <= deltaScreenX + cellWidth * 2f) && (event.getY() >= deltaScreenY * 0.75f) && (event.getY() <= deltaScreenY * 1f) && (event.getAction() == MotionEvent.ACTION_DOWN)) {
- btnMan.isPressed = false;
- btnDwarf.isPressed = false;
- btnElf.isPressed = false;
- btnFrog.isPressed = true;
- }
- //Кнопки, отвечающие за класс юнита (тут ничего менять не надо)
- if ((event.getX() >= deltaScreenX + cellWidth * 3f) && (event.getX() <= deltaScreenX + cellWidth * 5f) && (event.getY() >= 0f) && (event.getY() <= deltaScreenY * 0.25f) && (event.getAction() == MotionEvent.ACTION_DOWN)) {
- btnSword.isPressed = true;
- btnMage.isPressed = false;
- btnHorse.isPressed = false;
- btnRanged.isPressed = false;
- } else if ((event.getX() >= deltaScreenX + cellWidth * 3f) && (event.getX() <= deltaScreenX + cellWidth * 5f) && (event.getY() >= deltaScreenY * 0.25f) && (event.getY() <= deltaScreenY * 0.5f) && (event.getAction() == MotionEvent.ACTION_DOWN)) {
- btnSword.isPressed = false;
- btnMage.isPressed = true;
- btnHorse.isPressed = false;
- btnRanged.isPressed = false;
- } else if ((event.getX() >= deltaScreenX + cellWidth * 3f) && (event.getX() <= deltaScreenX + cellWidth * 5f) && (event.getY() >= deltaScreenY * 0.5f) && (event.getY() <= deltaScreenY * 0.75f) && (event.getAction() == MotionEvent.ACTION_DOWN)) {
- btnSword.isPressed = false;
- btnMage.isPressed = false;
- btnHorse.isPressed = true;
- btnRanged.isPressed = false;
- } else if ((event.getX() >= deltaScreenX + cellWidth * 3f) && (event.getX() <= deltaScreenX + cellWidth * 5f) && (event.getY() >= deltaScreenY * 0.75f) && (event.getY() <= deltaScreenY * 1f) && (event.getAction() == MotionEvent.ACTION_DOWN)) {
- btnSword.isPressed = false;
- btnMage.isPressed = false;
- btnHorse.isPressed = false;
- btnRanged.isPressed = true;
- }
- // Сюда надо вставлять юнитов в зависимости от того, какая комбинация кнопок нажата
- if ((btnMan.isPressed) && (btnSword.isPressed)) {
- replaceableUnit = unitSwordMan;
- } else if ((btnMan.isPressed) && (btnRanged.isPressed)) {
- replaceableUnit = unitRangedMan;
- } else if ((btnMan.isPressed) && (btnMage.isPressed)) {
- replaceableUnit = unitMageMan;
- }
- //Часть кода, отвечающая за перенос юнита на поле
- if (((event.getY() < deltaScreenY) && (event.getX() > deltaScreenX + cellWidth * 5)) || (flag)) {
- replaceableUnit2 = replaceableUnit;
- dx = event.getX();
- dy = event.getY();
- flag = true;
- if (event.getAction() == MotionEvent.ACTION_UP) {
- flag = false;
- if ((fieldIsPressed) && (indexOfCellY <= 2)) {
- unitMatrix[indexOfCellX][indexOfCellY] = replaceableUnit2;
- //В этой части заполняется массив, который потом передастся в BattleField, так что при добавлении новых юнитов, надо прописывать сюда их заполнение в массив
- if (replaceableUnit2 == unitMageMan)
- matrix[indexOfCellX][indexOfCellY] = 1;
- else if (replaceableUnit2 == unitSwordMan)
- matrix[indexOfCellX][indexOfCellY] = 2;
- else if (replaceableUnit2 == unitRangedMan)
- matrix[indexOfCellX][indexOfCellY] = 3;
- }
- replaceableUnit2 = null;
- }
- }
- //При нажатии на кнопку удаления, юнит заменяется на землю
- if ((event.getX() >= deltaScreenX + cellWidth * 2f) && (event.getX() <= deltaScreenX + cellWidth * 4f) && (event.getY() >= deltaScreenY + cellHeight * 9.25f) && (event.getY() <= deltaScreenY + cellHeight * 9.75f) && (event.getAction() == MotionEvent.ACTION_DOWN)) {
- matrix[indexOfCellX][indexOfCellY] = 0;
- unitMatrix[indexOfCellX][indexOfCellY] = new Unit("ground", getResources(), cellWidth, cellHeight, BitmapFactory.decodeResource(getResources(), R.drawable.ground), true);
- }
- if ((event.getX() >= deltaScreenX + cellWidth * 6f) && (event.getX() <= deltaScreenX + cellWidth * 7f) && (event.getY() >= deltaScreenY + cellHeight * 3f) && (event.getY() <= deltaScreenY + cellHeight * 5f) && (event.getAction() == MotionEvent.ACTION_DOWN)) {
- btnStartGame.isPressed = true;
- activity.finish();
- t.onFinish();
- //activity.startActivity(intent);
- }
- return true;
- }
- }
- package com.example.gwynbleidd.verstkagame;
- import android.content.Context;
- import android.content.Intent;
- import android.graphics.Point;
- import android.media.AudioManager;
- import android.media.SoundPool;
- import android.os.Bundle;
- import android.support.v7.app.AppCompatActivity;
- import android.view.Display;
- import android.view.MotionEvent;
- public class NewGame2 extends AppCompatActivity {
- PlayerTwoArmy playerTwoArmy;
- Bundle mBundle;
- Integer[][] playerOneMatrix;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- getSupportActionBar().hide();
- Display display = getWindowManager().getDefaultDisplay();
- Point size = new Point();
- display.getSize(size);
- int width = size.x;
- int height = size.y;
- playerOneMatrix = (Integer[][]) getIntent().getExtras().getSerializable("UnitMatrix");
- playerTwoArmy = new PlayerTwoArmy(getApplicationContext(), width, height, this);
- setContentView(playerTwoArmy);
- mBundle = new Bundle();
- }
- @Override
- protected void onStop() {
- Intent intent = new Intent(getApplicationContext(), GameActivity.class);
- mBundle.putSerializable("UnitMatrixPlayerTwo", playerTwoArmy.matrix);
- mBundle.putSerializable("UnitMatrixPlayerOne", playerOneMatrix);
- intent.putExtras(mBundle);
- startActivity(intent);
- super.onStop();
- }
- @Override
- protected void onDestroy() {
- super.onDestroy();
- }
- }
- package com.example.gwynbleidd.verstkagame;
- import android.content.res.Resources;
- import android.graphics.Bitmap;
- import android.graphics.Canvas;
- import android.graphics.Paint;
- public class OurButton {
- Bitmap btnImageNonePressed;
- Bitmap btnImagePressed;
- Boolean isPressed;
- public OurButton(Bitmap imageNonepressed, Bitmap imagePressed, Resources resources, Integer cellWidth, Integer cellHeight, Integer style) {
- this.isPressed = false;
- if (style == 1) {
- btnImageNonePressed = Bitmap.createScaledBitmap(imageNonepressed, cellWidth * 2, cellHeight / 2, false);
- btnImagePressed = Bitmap.createScaledBitmap(imagePressed, cellWidth * 2, cellHeight / 2, false);
- } else if (style == 2) {
- btnImageNonePressed = Bitmap.createScaledBitmap(imageNonepressed, cellWidth, cellHeight * 2, false);
- btnImagePressed = Bitmap.createScaledBitmap(imagePressed, cellWidth, cellHeight * 2, false);
- }
- }
- public void draw(Canvas canvas, Float x, Float y) {
- Paint p = new Paint();
- if (!isPressed)
- canvas.drawBitmap(btnImageNonePressed, x , y, p);
- else
- canvas.drawBitmap(btnImagePressed, x , y, p);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement