diff --git a/app/src/main/java/com/example/a8_bitinvader/Bullet.java b/app/src/main/java/com/example/a8_bitinvader/Bullet.java index f642050210500d6f798c151804b2265ba4bacd2b..17d125f5be5cd059d4b382f89882de80e0e1a918 100644 --- a/app/src/main/java/com/example/a8_bitinvader/Bullet.java +++ b/app/src/main/java/com/example/a8_bitinvader/Bullet.java @@ -10,8 +10,8 @@ public class Bullet extends Sprite { /** * Creates Bullet object using Sprite constructor */ - public Bullet(int xPos, int yPos, int xVel, int yVel, Resources res) { - super(xPos, yPos, xVel, yVel); + public Bullet(int xPos, int yPos, int xVel, int yVel, int screenWidth, int screenHeight, Resources res) { + super(xPos, yPos, xVel, yVel, screenWidth, screenHeight); spriteImage = BitmapFactory.decodeResource(res, R.drawable.red); spriteImage = Bitmap.createScaledBitmap(spriteImage, screenWidth, screenHeight, false); } diff --git a/app/src/main/java/com/example/a8_bitinvader/Enemy.java b/app/src/main/java/com/example/a8_bitinvader/Enemy.java index b6261967f4abccc04a74742c7ec1a05d9590b1d8..130cd140e5f958c18c3a81dc15f80803f847a8d9 100644 --- a/app/src/main/java/com/example/a8_bitinvader/Enemy.java +++ b/app/src/main/java/com/example/a8_bitinvader/Enemy.java @@ -19,8 +19,8 @@ public class Enemy extends Sprite{ * @param xVel X velocity * @param yVel Y velocity */ - public Enemy(int xPos, int yPos, int xVel, int yVel) { - super(xPos, yPos, xVel, yVel); + public Enemy(int xPos, int yPos, int xVel, int yVel, int screenWidth, int screenHeight) { + super(xPos, yPos, xVel, yVel, screenWidth, screenWidth); } diff --git a/app/src/main/java/com/example/a8_bitinvader/GameView.java b/app/src/main/java/com/example/a8_bitinvader/GameView.java index 59040de22ee1e5d013e6c0b5ccf7747896beaeb3..2bc1a8ee8b29b89da292590f5cc088cb79516bd7 100644 --- a/app/src/main/java/com/example/a8_bitinvader/GameView.java +++ b/app/src/main/java/com/example/a8_bitinvader/GameView.java @@ -28,8 +28,6 @@ public class GameView extends SurfaceView implements Runnable{ */ public GameView(Context context, int screenWidth, int screenHeight) { super(context); - joystick = new Joystick(screenWidth/2,screenHeight*9/10,130,40); - p1 = new Player(screenWidth/2,screenHeight*7/10,0,0, getResources()); this.screenWidth = screenWidth; this.screenHeight = screenHeight; @@ -42,6 +40,9 @@ public class GameView extends SurfaceView implements Runnable{ background2.yPos = -screenHeight; paint = new Paint(); + + joystick = new Joystick(screenWidth/2,screenHeight*9/10,130,40); + p1 = new Player(screenWidth/2,screenHeight*7/10,0,0, screenWidth, screenHeight, getResources()); } /* @@ -84,6 +85,7 @@ public class GameView extends SurfaceView implements Runnable{ if(background2.yPos > screenHeight) { background2.yPos = -screenHeight; } + p1.update((int)joystick.XVelocity, (int)joystick.YVelocity); joystick.update(joystick); } diff --git a/app/src/main/java/com/example/a8_bitinvader/Player.java b/app/src/main/java/com/example/a8_bitinvader/Player.java index 3301cdab034f2d1885fa7ace37c3a3f4e6776ef4..df40dc8ef569b287f7d41dde9ef81b29a9b39d01 100644 --- a/app/src/main/java/com/example/a8_bitinvader/Player.java +++ b/app/src/main/java/com/example/a8_bitinvader/Player.java @@ -1,12 +1,8 @@ package com.example.a8_bitinvader; -import java.util.LinkedList; -import java.util.Queue; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapFactory; -import android.util.Log; - public class Player extends Sprite{ @@ -24,8 +20,8 @@ public class Player extends Sprite{ * @param yVel Y velocity of player * @param res Resource object */ - public Player(int xPos, int yPos, int xVel, int yVel, Resources res) { - super(xPos,yPos,xVel,yVel); + public Player(int xPos, int yPos, int xVel, int yVel, int screenWidth, int screenHeight, Resources res) { + super(xPos,yPos,xVel,yVel, screenWidth, screenHeight); this.xPos = xPos; this.yPos = yPos; spriteImage = BitmapFactory.decodeResource(res, R.drawable.player); @@ -45,8 +41,22 @@ public class Player extends Sprite{ xVel = joyStickInputX * SPEED_MULTIPLIER; yVel = joyStickInputY * SPEED_MULTIPLIER; + // calls Sprite update(). Updates xPos and yPos. update(); + // checks if Player is offscreen. If so, repositions them within the screen. + if(xPos < 0){ + xPos = 5; + } else if(xPos + getSpriteWidth() > screenWidth){ + xPos = screenWidth - getSpriteWidth() - 5; + } + + if(yPos < 0){ + yPos = 5; + } else if(yPos + getSpriteHeight() > screenHeight){ + yPos = screenHeight - getSpriteHeight() - 5; + } + } /** diff --git a/app/src/main/java/com/example/a8_bitinvader/Sprite.java b/app/src/main/java/com/example/a8_bitinvader/Sprite.java index dfb73a728eb1de57f91db4728f570308d22debe7..23516a2e72e874560e5d01bd492933f60441b2bb 100644 --- a/app/src/main/java/com/example/a8_bitinvader/Sprite.java +++ b/app/src/main/java/com/example/a8_bitinvader/Sprite.java @@ -22,7 +22,7 @@ public class Sprite { Bitmap spriteImage; //private properties - private final int spriteHeight = 160, spriteWidth = 160; + private final int spriteHeight = 128, spriteWidth = 128; //private properties @@ -32,12 +32,15 @@ public class Sprite { * @param xVel initial x velocity of Sprite * @param yVel initial y velocity of Sprite */ - public Sprite(int xPos, int yPos, int xVel, int yVel) + public Sprite(int xPos, int yPos, int xVel, int yVel, int screenWidth, int screenHeight) { this.xPos = xPos; this.yPos = yPos; this.xVel = xVel; this.yVel = yVel; + + this.screenWidth = screenWidth; + this.screenHeight = screenHeight; } /**