Skip to content

Commit

Permalink
animation first draft
Browse files Browse the repository at this point in the history
  • Loading branch information
ylin0603 committed Dec 20, 2016
1 parent ed802a8 commit 26d6881
Show file tree
Hide file tree
Showing 4 changed files with 59 additions and 51 deletions.
Binary file modified res/textures/character.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
25 changes: 17 additions & 8 deletions src/renderer/data/entity/Character.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ public class Character extends Entity {
private int timer = 0;
private boolean animationFinished = true;
private int clientno;
private Sword sword = new Sword();

public Character(int clientno, String nickName) {
this.clientno = clientno;
Expand All @@ -34,6 +35,7 @@ public void Initialize() {
this.HP = 100;

sprite = Sprite.PLAYER;
sword.sprite = Sprite.EMPTY;
}

public void set(int weaponType, String nickName, int x, int y,
Expand All @@ -58,28 +60,34 @@ public void set(int weaponType, String nickName, int x, int y,

public void update() {
timer++;
if (timer % 5 == 0) {
if (timer % 4 == 0) {
count++;
}

if (attackFlag || !animationFinished) {

animationFinished = false;

if (faceAngle >= 45 && faceAngle < 135) {
this.sprite = Sprite.BOX_ATTACK_RIGHT[count % 4];
sword.sprite = Sprite.SWORD_RIGHT_ATTACK[count % 5];
sword.x = x;
sword.y = y - this.sprite.SIZE / 2;
} else if (faceAngle >= 135 && faceAngle < 225) {
this.sprite = Sprite.BOX_ATTACK_DOWN[count % 4];
sword.sprite = Sprite.SWORD_DOWNWARD_ATTCK[count % 5];
sword.x = x - this.sprite.SIZE / 2;
sword.y = y - this.sprite.SIZE /3 ;
} else if (faceAngle >= 225 && faceAngle < 315) {
this.sprite = Sprite.BOX_ATTACK_LEFT[count % 4];
sword.sprite = Sprite.SWORD_LEFT_ATTACK[count % 5];
sword.x = x - this.sprite.SIZE ;
sword.y = y - this.sprite.SIZE / 3;
} else if ((faceAngle >= 315 && faceAngle < 360) || (faceAngle >= 0 && faceAngle < 45)) {
this.sprite = Sprite.BOX_ATTACK_UP[count % 4];
sword.sprite = Sprite.SWORD_UPWARD_ATTACK[count % 5];
sword.x = x - this.sprite.SIZE / 2;
sword.y = y - this.sprite.SIZE;
}

animationFinished = (count % 4 == 3);

} else {
this.sprite = Sprite.PLAYER;
sword.sprite = Sprite.EMPTY;
}

if (count == 12000) {
Expand All @@ -92,6 +100,7 @@ public void render(int[] pixels) {
//TODO: If attack flag == true, draw addition animation
//TODO: bullet should have additional class and draw additionally.
super.render(pixels);
sword.render(pixels);
}

public int getWeaponType() {
Expand Down
16 changes: 16 additions & 0 deletions src/renderer/data/entity/Sword.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package renderer.data.entity;

/**
* Created by TsunglinYang on 2016/12/20.
*/
public class Sword extends Entity {
@Override
public void update() {

}

@Override
public void render(int[] pixels) {
super.render(pixels);
}
}
69 changes: 26 additions & 43 deletions src/renderer/graphics/Sprite.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ public class Sprite {
public int[] pixels;
private SpriteSheet sheet;

public static Sprite EMPTY = new Sprite(32,0xffffffff);

public static Sprite GRASS = new Sprite(16, 0, 1, SpriteSheet.tiles);
public static Sprite STONE = new Sprite(16, 0, 2, SpriteSheet.tiles);
Expand All @@ -25,53 +26,35 @@ public class Sprite {
public static Sprite SPWAN_FLOOR = new Sprite(16, 2, 1, SpriteSheet.SPWAN_LEVEL);

// below is for animation, dear StanleyLin.
/*public static Sprite[] PLAYER_FORWARD = {
new Sprite(16, 1, 3, SpriteSheet.characterList),
new Sprite(16, 0, 3, SpriteSheet.characterList),
new Sprite(16, 2, 3, SpriteSheet.characterList),
};
public static Sprite PLAYER_BACKWARD[] = {
new Sprite(16, 1, 0, SpriteSheet.characterList),
new Sprite(16, 0, 0, SpriteSheet.characterList),
new Sprite(16, 2, 0, SpriteSheet.characterList),
};
public static Sprite PLAYER_LEFT[] = {
new Sprite(16, 1, 1, SpriteSheet.characterList),
new Sprite(16, 0, 1, SpriteSheet.characterList),
new Sprite(16, 2, 1, SpriteSheet.characterList),
};
public static Sprite PLAYER_RIGHT[] = {
new Sprite(16, 1, 2, SpriteSheet.characterList),
new Sprite(16, 0, 2, SpriteSheet.characterList),
new Sprite(16, 2, 2, SpriteSheet.characterList),
};*/

public static Sprite[] BOX_ATTACK_UP = {
new Sprite(16, 0, 8, SpriteSheet.character),
new Sprite(16, 1, 8, SpriteSheet.character),
new Sprite(16, 2, 8, SpriteSheet.character),
new Sprite(16, 3, 8, SpriteSheet.character),

public static Sprite[] SWORD_UPWARD_ATTACK = {
new Sprite(32, 4, 5, SpriteSheet.character),
new Sprite(32, 5, 5, SpriteSheet.character),
new Sprite(32, 6, 5, SpriteSheet.character),
new Sprite(32, 7, 5, SpriteSheet.character),
new Sprite(32, 0, 4, SpriteSheet.character),
};

public static Sprite BOX_ATTACK_RIGHT[] = {
new Sprite(16, 0, 9, SpriteSheet.character),
new Sprite(16, 1, 9, SpriteSheet.character),
new Sprite(16, 2, 9, SpriteSheet.character),
new Sprite(16, 3, 9, SpriteSheet.character),
public static Sprite SWORD_RIGHT_ATTACK[] = {
new Sprite(32, 0, 4, SpriteSheet.character),
new Sprite(32, 1, 4, SpriteSheet.character),
new Sprite(32, 2, 4, SpriteSheet.character),
new Sprite(32, 3, 4, SpriteSheet.character),
new Sprite(32, 4, 4, SpriteSheet.character),
};
public static Sprite BOX_ATTACK_DOWN[] = {
new Sprite(16, 0, 10, SpriteSheet.character),
new Sprite(16, 1, 10, SpriteSheet.character),
new Sprite(16, 2, 10, SpriteSheet.character),
new Sprite(16, 3, 10, SpriteSheet.character),
public static Sprite SWORD_DOWNWARD_ATTCK[] = {
new Sprite(32, 4, 4, SpriteSheet.character),
new Sprite(32, 5, 4, SpriteSheet.character),
new Sprite(32, 6, 4, SpriteSheet.character),
new Sprite(32, 7, 4, SpriteSheet.character),
new Sprite(32, 0, 5, SpriteSheet.character),
};
public static Sprite BOX_ATTACK_LEFT[] = {
new Sprite(16, 0, 10, SpriteSheet.character),
new Sprite(16, 1, 10, SpriteSheet.character),
new Sprite(16, 2, 10, SpriteSheet.character),
new Sprite(16, 3, 10, SpriteSheet.character),
public static Sprite SWORD_LEFT_ATTACK[] = {
new Sprite(32, 0, 5, SpriteSheet.character),
new Sprite(32, 1, 5, SpriteSheet.character),
new Sprite(32, 2, 5, SpriteSheet.character),
new Sprite(32, 3, 5, SpriteSheet.character),
new Sprite(32, 4, 5, SpriteSheet.character),

};

Expand Down

0 comments on commit 26d6881

Please sign in to comment.