Guest User

player.java

a guest
Mar 24th, 2017
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.45 KB | None | 0 0
  1. package com.xsades.cherno.entity.mob;
  2.  
  3. import com.xsades.cherno.Game;
  4. import com.xsades.cherno.entity.projectile.Projectile;
  5. import com.xsades.cherno.entity.projectile.WizardProjectile;
  6. import com.xsades.cherno.graphics.AnimatedSprite;
  7. import com.xsades.cherno.graphics.Screen;
  8. import com.xsades.cherno.graphics.Sprite;
  9. import com.xsades.cherno.graphics.Spritesheet;
  10. import com.xsades.cherno.input.Keyboard;
  11. import com.xsades.cherno.input.Mouse;
  12.  
  13. public class Player extends Mob{
  14.  
  15. private Keyboard input;
  16. private Sprite sprite;
  17. private boolean walking = false;
  18. private int fireRate = 0;
  19.  
  20. private AnimatedSprite up = new AnimatedSprite(Spritesheet.player_up, 32, 32, 3);
  21. private AnimatedSprite down = new AnimatedSprite(Spritesheet.player_down, 32, 32, 3);
  22. private AnimatedSprite left = new AnimatedSprite(Spritesheet.player_left, 32, 32, 3);
  23. private AnimatedSprite right = new AnimatedSprite(Spritesheet.player_right, 32, 32, 3);
  24.  
  25. private AnimatedSprite animSprite = null;
  26.  
  27. public Player(Keyboard input){
  28. this.input = input;
  29. sprite = Sprite.player_down;
  30. animSprite = down;
  31. }
  32. public Player(int x, int y, Keyboard input) {
  33. this.x = x;
  34. this.y = y;
  35. this.input = input;
  36. fireRate = WizardProjectile.FIRERATE;
  37. sprite = Sprite.player_down;
  38. animSprite = down;
  39. }
  40.  
  41. public void update(){
  42. if(walking) animSprite.update();
  43. else animSprite.setFrame(0);
  44.  
  45. if(fireRate > 0) fireRate--;
  46.  
  47. int xa = 0, ya = 0;
  48.  
  49. if(input.up){
  50. animSprite = up;
  51. ya--;
  52. }
  53. else if(input.down){
  54. animSprite = down;
  55. ya++;
  56. }
  57. if(input.left){
  58. animSprite = left;
  59. xa--;
  60. }else if(input.right){
  61. animSprite = right;
  62. xa++;
  63. }
  64.  
  65. if(xa != 0 || ya != 0){
  66. move(xa, ya);
  67. walking = true;
  68. }
  69. else{
  70. walking = false;
  71. }
  72. clear();
  73. updateShooting();
  74. }
  75. private void clear() {
  76. for(int i = 0; i < level.getProjectiles().size(); i++){
  77. Projectile p = level.getProjectiles().get(i);
  78. if(p.isRemoved()) level.getProjectiles().remove(i);
  79. }
  80. }
  81. private void updateShooting(){
  82. if(Mouse.getButton() == 1 && fireRate <= 0){
  83. double dx = Mouse.getX() - Game.getWindowWidth()/2;
  84. double dy = Mouse.getY() - Game.getWindowHeight()/2;
  85. double dir = Math.atan2(dy, dx);
  86. shoot(x, y, dir);
  87. fireRate = WizardProjectile.FIRERATE;
  88. }
  89.  
  90. }
  91. public void render(Screen screen){
  92. sprite = animSprite.getSprite();
  93. screen.renderPlayer(x - 8, y - 8, sprite);
  94.  
  95.  
  96. }
  97. }
Add Comment
Please, Sign In to add comment