From: Skullheadx <94652084+Skullheadx@users.noreply.github.com> Date: Fri, 8 Jul 2022 06:07:03 +0000 (-0400) Subject: added player animation and assets X-Git-Url: http://git.skullheadx.com/nixos/static/projects/suckless.html?a=commitdiff_plain;h=89b60b15f949dfac863f5a4cf7adbba79bec56a5;p=Pygame-Jam.git added player animation and assets --- diff --git a/Assets/player/idle/Idle_Animation1.png b/Assets/player/idle/Idle_Animation1.png new file mode 100644 index 0000000..1bae45a Binary files /dev/null and b/Assets/player/idle/Idle_Animation1.png differ diff --git a/Assets/player/idle/Idle_Animation10.png b/Assets/player/idle/Idle_Animation10.png new file mode 100644 index 0000000..428c4e0 Binary files /dev/null and b/Assets/player/idle/Idle_Animation10.png differ diff --git a/Assets/player/idle/Idle_Animation11.png b/Assets/player/idle/Idle_Animation11.png new file mode 100644 index 0000000..cae952a Binary files /dev/null and b/Assets/player/idle/Idle_Animation11.png differ diff --git a/Assets/player/idle/Idle_Animation12.png b/Assets/player/idle/Idle_Animation12.png new file mode 100644 index 0000000..ee56a60 Binary files /dev/null and b/Assets/player/idle/Idle_Animation12.png differ diff --git a/Assets/player/idle/Idle_Animation13.png b/Assets/player/idle/Idle_Animation13.png new file mode 100644 index 0000000..b2e1016 Binary files /dev/null and b/Assets/player/idle/Idle_Animation13.png differ diff --git a/Assets/player/idle/Idle_Animation14.png b/Assets/player/idle/Idle_Animation14.png new file mode 100644 index 0000000..b2e1016 Binary files /dev/null and b/Assets/player/idle/Idle_Animation14.png differ diff --git a/Assets/player/idle/Idle_Animation15.png b/Assets/player/idle/Idle_Animation15.png new file mode 100644 index 0000000..b378f5e Binary files /dev/null and b/Assets/player/idle/Idle_Animation15.png differ diff --git a/Assets/player/idle/Idle_Animation16.png b/Assets/player/idle/Idle_Animation16.png new file mode 100644 index 0000000..e36b0cb Binary files /dev/null and b/Assets/player/idle/Idle_Animation16.png differ diff --git a/Assets/player/idle/Idle_Animation17.png b/Assets/player/idle/Idle_Animation17.png new file mode 100644 index 0000000..24026d8 Binary files /dev/null and b/Assets/player/idle/Idle_Animation17.png differ diff --git a/Assets/player/idle/Idle_Animation18.png b/Assets/player/idle/Idle_Animation18.png new file mode 100644 index 0000000..4fa5a85 Binary files /dev/null and b/Assets/player/idle/Idle_Animation18.png differ diff --git a/Assets/player/idle/Idle_Animation19.png b/Assets/player/idle/Idle_Animation19.png new file mode 100644 index 0000000..cae952a Binary files /dev/null and b/Assets/player/idle/Idle_Animation19.png differ diff --git a/Assets/player/idle/Idle_Animation2.png b/Assets/player/idle/Idle_Animation2.png new file mode 100644 index 0000000..428c4e0 Binary files /dev/null and b/Assets/player/idle/Idle_Animation2.png differ diff --git a/Assets/player/idle/Idle_Animation20.png b/Assets/player/idle/Idle_Animation20.png new file mode 100644 index 0000000..cae952a Binary files /dev/null and b/Assets/player/idle/Idle_Animation20.png differ diff --git a/Assets/player/idle/Idle_Animation3.png b/Assets/player/idle/Idle_Animation3.png new file mode 100644 index 0000000..428c4e0 Binary files /dev/null and b/Assets/player/idle/Idle_Animation3.png differ diff --git a/Assets/player/idle/Idle_Animation4.png b/Assets/player/idle/Idle_Animation4.png new file mode 100644 index 0000000..428c4e0 Binary files /dev/null and b/Assets/player/idle/Idle_Animation4.png differ diff --git a/Assets/player/idle/Idle_Animation5.png b/Assets/player/idle/Idle_Animation5.png new file mode 100644 index 0000000..428c4e0 Binary files /dev/null and b/Assets/player/idle/Idle_Animation5.png differ diff --git a/Assets/player/idle/Idle_Animation6.png b/Assets/player/idle/Idle_Animation6.png new file mode 100644 index 0000000..428c4e0 Binary files /dev/null and b/Assets/player/idle/Idle_Animation6.png differ diff --git a/Assets/player/idle/Idle_Animation7.png b/Assets/player/idle/Idle_Animation7.png new file mode 100644 index 0000000..428c4e0 Binary files /dev/null and b/Assets/player/idle/Idle_Animation7.png differ diff --git a/Assets/player/idle/Idle_Animation8.png b/Assets/player/idle/Idle_Animation8.png new file mode 100644 index 0000000..428c4e0 Binary files /dev/null and b/Assets/player/idle/Idle_Animation8.png differ diff --git a/Assets/player/idle/Idle_Animation9.png b/Assets/player/idle/Idle_Animation9.png new file mode 100644 index 0000000..428c4e0 Binary files /dev/null and b/Assets/player/idle/Idle_Animation9.png differ diff --git a/Enemy.py b/Enemy.py index 54f71be..a969d54 100644 --- a/Enemy.py +++ b/Enemy.py @@ -5,7 +5,7 @@ from Actors import Actor from Weapon import Melee class Enemy(Actor): - width, height = 25, 50 + width, height = 50, 100 colour = (235, 64, 52) speed = 0.2 jump_strength = 0.75 @@ -22,7 +22,7 @@ class Enemy(Actor): # self.health = 0 - self.weapon = Melee(self.position, (-Melee.width/2, Melee.height/2), (0, Melee.height), self.width,-1) + self.weapon = Melee(self.position, (-Melee.width/2 + 7, Melee.height/2 + self.height/3 - 8), (-5,Melee.height), self.width,-1) def update(self, delta, target=None): super().update(delta) diff --git a/Player.py b/Player.py index 2925c9c..a75a72c 100644 --- a/Player.py +++ b/Player.py @@ -10,13 +10,19 @@ from Potion import Potion from Weapon import Melee class Player(Actor): - width, height = 25, 50 + scale = 100 + factor = 640/scale + crop = pg.Rect(179,169, 170, 401) + idle_frames = [pygame.transform.scale(pg.image.load(path.join("Assets/player/idle", file)).subsurface(pg.Rect(179,169, 170, 401)), (50,100)) for file in listdir("Assets/player/idle")] + width, height = idle_frames[0].get_size() + colour = (52, 94, 235) speed = 0.2 jump_strength = 0.9 gravity = 0.098 friction = 0.7 + def __init__(self, pos, collision_layer, collision_mask, can_hurt): super().__init__(pos, collision_layer, collision_mask) self.initial_position = pg.Vector2(pos) @@ -38,9 +44,16 @@ class Player(Actor): for i in range(self.starting_potions): self.potion_bag.append(Potion(self)) - self.weapon = Melee(self.position, (-Melee.width/2, Melee.height/2), (0, Melee.height), self.width,-1) + self.weapon = Melee(self.position, (-Melee.width/2 + 7, Melee.height/2 + self.height/3 - 8), (-5,Melee.height), self.width,-1) self.targets = can_hurt + self.direction = -1 + + self.state = "IDLE" + self.current_frame = 0 + self.display = self.idle_frames[0] + self.display_offsets = {"weapon":pg.Vector2(0,0)} + def update(self, delta): super().update(delta) @@ -56,11 +69,33 @@ class Player(Actor): # Deals with collision and applying velocity self.position, self.velocity = self.move_and_collide(self.position.copy(), self.velocity.copy(), delta) + prev_direction = self.direction if self.velocity.x == 0: - direction = 0 + self.direction = 0 else: - direction = math.copysign(1,self.velocity.x) - self.weapon.update(delta,self.position, direction) + self.direction = math.copysign(1,self.velocity.x) + self.weapon.update(delta,self.position, self.direction) + + if self.state == "IDLE": + frame = math.floor(self.current_frame) + if self.direction == 1: + self.display = self.idle_frames[math.floor(frame)] + elif self.direction == -1: + self.display = pg.transform.flip(self.idle_frames[math.floor(frame)], True, False) + else: + if prev_direction == 1: + self.display = self.idle_frames[math.floor(frame)] + elif prev_direction == -1: + self.display = pg.transform.flip(self.idle_frames[math.floor(frame)], True, False) + # 1 - 10 up, 11 down by 1, 12 - 18 down by 2, 19-20 down 1 FIX THIS + frame += 1 + if 1 < frame < 10: + self.display_offsets["weapon"] = pg.Vector2(0,2) + elif frame == 11 or frame == 19 or frame == 20: + self.display_offsets["weapon"] = pg.Vector2(0,1) + else: + self.display_offsets["weapon"] = pg.Vector2(0,0) + self.current_frame = (self.current_frame + 0.1) % len(self.idle_frames) return self.position - self.initial_position @@ -111,8 +146,9 @@ class Player(Actor): def draw(self, surf): - self.weapon.draw(surf) - super().draw(surf) + self.weapon.draw(surf, self.display_offsets["weapon"]) + # super().draw(surf) + surf.blit(self.display, get_display_rect(self.get_collision_rect())) # print(self.position, self.velocity, get_display_rect(self.get_collision_rect()).topleft, Setup.camera_offset) # pg.draw.rect(surf, self.colour, get_display_rect(self.get_collision_rect()), border_radius=8) diff --git a/Setup.py b/Setup.py index 348d126..4bb65fe 100644 --- a/Setup.py +++ b/Setup.py @@ -1,6 +1,7 @@ import pygame as pg import math import random +from os import listdir, path pg.init() @@ -33,4 +34,7 @@ def get_display_rect(collision_rect): return pg.Rect(pos - camera_offset, (width, height)) # return pg.Rect(pos, (width, height)) +def get_display_point(vec): + return vec - camera_offset + from Area import Area diff --git a/Weapon.py b/Weapon.py index b598eb4..54e84a1 100644 --- a/Weapon.py +++ b/Weapon.py @@ -53,7 +53,7 @@ class Melee: if self.swing_timer == 0: self.swing_timer = 360 - def draw(self, surf): - surf.blit(self.display, get_display_rect(self.get_collision_rect()).topleft) - # pygame.draw.circle(surf,(255,0,255),self.pivot,3) - # pygame.draw.circle(surf,(0,255,0),self.position,3) + def draw(self, surf, display_offset = pg.Vector2(0,0)): + surf.blit(self.display, get_display_rect(self.get_collision_rect()).topleft + display_offset) + # pg.draw.circle(surf,(255,0,255),get_display_point(self.pivot),3) + # pg.draw.circle(surf,(0,255,0),get_display_point(self.position),3)