Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.xsades.cherno.entity.mob;
- import com.xsades.cherno.Game;
- import com.xsades.cherno.entity.projectile.Projectile;
- import com.xsades.cherno.entity.projectile.WizardProjectile;
- import com.xsades.cherno.graphics.AnimatedSprite;
- import com.xsades.cherno.graphics.Screen;
- import com.xsades.cherno.graphics.Sprite;
- import com.xsades.cherno.graphics.Spritesheet;
- import com.xsades.cherno.input.Keyboard;
- import com.xsades.cherno.input.Mouse;
- public class Player extends Mob{
- private Keyboard input;
- private Sprite sprite;
- private boolean walking = false;
- private int fireRate = 0;
- private AnimatedSprite up = new AnimatedSprite(Spritesheet.player_up, 32, 32, 3);
- private AnimatedSprite down = new AnimatedSprite(Spritesheet.player_down, 32, 32, 3);
- private AnimatedSprite left = new AnimatedSprite(Spritesheet.player_left, 32, 32, 3);
- private AnimatedSprite right = new AnimatedSprite(Spritesheet.player_right, 32, 32, 3);
- private AnimatedSprite animSprite = null;
- public Player(Keyboard input){
- this.input = input;
- sprite = Sprite.player_down;
- animSprite = down;
- }
- public Player(int x, int y, Keyboard input) {
- this.x = x;
- this.y = y;
- this.input = input;
- fireRate = WizardProjectile.FIRERATE;
- sprite = Sprite.player_down;
- animSprite = down;
- }
- public void update(){
- if(walking) animSprite.update();
- else animSprite.setFrame(0);
- if(fireRate > 0) fireRate--;
- int xa = 0, ya = 0;
- if(input.up){
- animSprite = up;
- ya--;
- }
- else if(input.down){
- animSprite = down;
- ya++;
- }
- if(input.left){
- animSprite = left;
- xa--;
- }else if(input.right){
- animSprite = right;
- xa++;
- }
- if(xa != 0 || ya != 0){
- move(xa, ya);
- walking = true;
- }
- else{
- walking = false;
- }
- clear();
- updateShooting();
- }
- private void clear() {
- for(int i = 0; i < level.getProjectiles().size(); i++){
- Projectile p = level.getProjectiles().get(i);
- if(p.isRemoved()) level.getProjectiles().remove(i);
- }
- }
- private void updateShooting(){
- if(Mouse.getButton() == 1 && fireRate <= 0){
- double dx = Mouse.getX() - Game.getWindowWidth()/2;
- double dy = Mouse.getY() - Game.getWindowHeight()/2;
- double dir = Math.atan2(dy, dx);
- shoot(x, y, dir);
- fireRate = WizardProjectile.FIRERATE;
- }
- }
- public void render(Screen screen){
- sprite = animSprite.getSprite();
- screen.renderPlayer(x - 8, y - 8, sprite);
- }
- }
Add Comment
Please, Sign In to add comment