From cc24152e7f10862510a3ae655fd939fd6034a691 Mon Sep 17 00:00:00 2001 From: Jefferson Mousikas Date: Sun, 10 Mar 2024 23:37:57 +0000 Subject: [PATCH 1/3] Upload files to "art/images/people" --- art/images/people/oldmanattack.png | Bin 6043 -> 5483 bytes art/images/people/oldmanwalk.png | Bin 2118 -> 2135 bytes art/images/people/zombiewalk.png | Bin 0 -> 1591 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 art/images/people/zombiewalk.png diff --git a/art/images/people/oldmanattack.png b/art/images/people/oldmanattack.png index fb1085e0bec6b1fab478d26dca2f12ac6bd64a73..0fe2a96ac01b86f2b3ea0046f56327a89ec6b21b 100644 GIT binary patch literal 5483 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 VQMBcP@uL6$002ovPDHLkV1n@Oi8KHJ diff --git a/art/images/people/oldmanwalk.png b/art/images/people/oldmanwalk.png index f578cc378f65d11cfdaaf550aa50ec73667f3385..513bf712924f0d9ba84a193e1399c92756abf8ff 100644 GIT binary patch delta 2120 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 diff --git a/art/images/people/zombiewalk.png b/art/images/people/zombiewalk.png new file mode 100644 index 0000000000000000000000000000000000000000..1c73dc08b540268096681b9ba2e38a9a53027c33 GIT binary patch literal 1591 zcmV-72FUq|P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1s#J`AM@+pMB2$Smuqpe{eWw-`VFkYp=ETxigom z3T zsLRO3^VQ_U%h66rU&&vWP@gklkP1vbxTZfoq+eTp^U}_B>=R7d2TK0pd_5Bet-t^= zBBqD7J*MQw+_c;>=t-u=}xwQq~i4(tTFFXIcbNngodoX?pA;pnPM)$oEd^%#lF4N%etq@M`) zu3yvhA^z;_uj=aY%XC8T8(FJfpV@1E(glrXE_*<1CpU zw{G!zfW2O6U&&vWDxV{l3=W(sAAmErz+m(0D_UP2J#I!_zWm{6V>~u+;Vk7V`Rfwm zb0$a^q~8k+@HUL|wM!QD#F-KwxqyVPNc-TR1?IXqaN!_#Dm*p`A73L}e4GLtJVq&`*2`l{@i`5hE3}dJ!9l>q$2su0 zDApXLd?kNzKBu9HehJWqJmlbBDd3d!O8EHwC4YXr4b3^70s7$g=Mu|8n>{U7XxvOZxZ*k!nI4iZ=y&lOEdlwr;>2Cqe7w&YY%(Z{Ga; ze+CJOH3IJ8H4b?IRyOp5Q@hMn9!tmXYMnfGSjiYTA%IBmg3~=v3(#X zPVz}@4j@%$+f%i6A5KG~0m0q=0b z?4Chh*W7e=P!D<=+Ww~1N1y(wAPt3r3;o7c6HQHFH)JfdKKeZpZ|8t~ASM^IIhxiJ z8Yg^BjaK*Y31QQoH@urV2A(HsX4I$dE3AaKq5lgIAcAd5LP%4@Za8qw*y0ur?kB3= z1wy!Cc%`}OCDm64IjiF5@chcx3- zYP-4WGO^>ip^zu3O==8{&{N9{JJ3!v!&-cfD&WLFWOehKeB?00V7N18eO2IT<%_ZI zXH~?^MR)r*4vE-74mSV*002ovPDHLkV1n@50Sf>C literal 0 HcmV?d00001 From a9770aff7eb34e238e00bebd74b2e215b9da2256 Mon Sep 17 00:00:00 2001 From: Jefferson Mousikas Date: Sun, 10 Mar 2024 23:47:22 +0000 Subject: [PATCH 2/3] Update viecher.py added animations for old man walking, old man attacking and zombie attacking --- viecher.py | 123 ++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 112 insertions(+), 11 deletions(-) diff --git a/viecher.py b/viecher.py index 0e2f3c3..b5772ed 100644 --- a/viecher.py +++ b/viecher.py @@ -151,27 +151,78 @@ class Fighter(Objects): class MainCharacter(Fighter): - def __init__(self, name, ms, sprite, x, y, health, damage, level, asp, atr, killed =[]) -> None: + def __init__(self, name, ms, sprite, x, y, health, damage, level, asp, atr, killed=[]) -> None: super().__init__(name, ms, sprite, x, y, health, damage, level, asp, atr) self.book = Book(0, 0, [], None, None) self.talking = False - self.level = Level(1000, 38, 150, 40, level, f'will to live: {level}%', 'simple', 20, ) - self.health = Hearts(health, sprite=['fullheart.png', 'fullheart.png', 'fullheart.png', 'fullheart.png', 'fullheart.png'], x=900, y= 50, hurtCooldown=self.hurtCooldown) - self.thinks = Thinks(self.x+20, self.y-50, 150, 100, 'brr I\'m freezing') + self.level = Level(1000, 38, 150, 40, level, f'will to live: {level}%', 'simple', 20) + self.health = Hearts(health, sprite=['fullheart.png', 'fullheart.png', 'fullheart.png', 'fullheart.png', 'fullheart.png'], x=900, y=50, hurtCooldown=self.hurtCooldown) + self.thinks = Thinks(self.x + 20, self.y - 50, 150, 100, 'brr I\'m freezing') self.freezing = True - self.killed = killed #amount of mobs that were killed + self.killed = killed # amount of mobs that were killed + self.load_frames(f'art/images/people/oldmanwalk.png', f'art/images/people/oldmanattack.png') + self.current_frame = 0 + self.animation_speed = 0.1 + self.last_frame_update = pg.time.get_ticks() + self.rect = pg.Rect(x, y, self.walk_frames[0].get_width(), self.walk_frames[0].get_height()) + self.is_attacking = False + + def load_frames(self, walk_sprite_sheet, attack_sprite_sheet): + self.walk_frames = self.load_animation_frames(walk_sprite_sheet, frame_width=40, frame_height=64) + self.attack_frames = self.load_animation_frames(attack_sprite_sheet, frame_width=66, frame_height=64) # Adjust frame width and height as needed + + def load_animation_frames(self, sprite_sheet, frame_width, frame_height): + sprite_sheet = pg.transform.scale2x(pg.image.load(sprite_sheet)) + animation_frames = [] + if frame_width == 40: + frames_coordinates = [ + (frame_width, 0), + (frame_width*2, 0), + (frame_width*3, 0), + (frame_width*4, 0), + (frame_width*5, 0), + (frame_width*6, 0), + (frame_width*7, 0), + (frame_width*8, 0), + ] + else: + frames_coordinates = [ + (frame_width, 0), + (frame_width*2, 0), + (frame_width*3, 0), + (frame_width*4, 0), + (frame_width*5, 0), + (frame_width*6, 0) + ] + for x, y in frames_coordinates: + frame = pg.Surface((frame_width, frame_height), pg.SRCALPHA) + frame.blit(sprite_sheet, (0, 0), (x, y, frame_width, frame_height)) + animation_frames.append(frame) + return animation_frames + def draw(self, screen): if self.hidden: return + current_time = pg.time.get_ticks() + if self.is_attacking: + animation_frames = self.attack_frames + else: + animation_frames = self.walk_frames + + if current_time - self.last_frame_update > self.animation_speed * 1000: + self.current_frame = (self.current_frame + 1) % len(animation_frames) + self.last_frame_update = current_time + current_frame_image = animation_frames[self.current_frame] + screen.blit(current_frame_image, (self.x, self.y)) + self.rect.x, self.rect.y = self.x, self.y - screen.blit(self.sprite, self.rect) self.health.draw(screen) self.level.draw(screen) self.book.draw(screen) pg.draw.rect(screen, '#e900fa', self.rect, 2) if self.thinks.hidden == False: - self.thinks.draw(screen, self.x+20, self.y-100) + self.thinks.draw(screen, self.x + 20, self.y - 100) def hurt(self, damage, objects): if not self.talking: @@ -256,12 +307,31 @@ class MainCharacter(Fighter): weapon = Punch('punch', 100, self.x, self.y, moveto, 1, Mobs, life_ticks=500) obj[3].append(weapon) self.lastAttack = pg.time.get_ticks() + if not self.is_attacking: + self.current_frame = 0 + self.is_attacking = True def update(self, keys, mouse, objects): if not self.talking: - self.walk(keys, objects) + is_moving = False + if keys[pg.K_w] or keys[pg.K_UP] or keys[pg.K_a] or keys[pg.K_LEFT] or keys[pg.K_s] or keys[pg.K_DOWN] or keys[pg.K_d] or keys[pg.K_RIGHT]: + is_moving = True + if is_moving: + self.walk(keys, objects) + self.is_attacking = False + else: + current_time = pg.time.get_ticks() + if current_time - self.last_frame_update > self.animation_speed * 1000: + self.current_frame = (self.current_frame + 1) % len(self.walk_frames) + self.last_frame_update = current_time + if not self.is_attacking: + self.current_frame = 0 if pg.mouse.get_pressed()[0]: self.attack(objects, vec(mouse)) + if self.is_attacking: + if self.current_frame == len(self.attack_frames) - 1: + self.is_attacking = False + self.current_frame = 0 self.thinks.update(objects, self) if self.health.health <= 0: return 'village' @@ -464,13 +534,44 @@ class Skeleton(Mobs): class Zombie(Mobs): - def __init__(self, name, ms, x, y, health, damage, level, asp, atr, sprite='people/zombie.png', drops=0) -> None: - super().__init__(name, ms, sprite, x, y, health, damage, level, asp, atr, drops) + def __init__(self, name, ms, x, y, health, damage, level, asp, atr, sprite_sheet='people/zombiewalk.png', drops=0) -> None: + super().__init__(name, ms, sprite_sheet, x, y, health, damage, level, asp, atr, drops) + self.load_frames(f'art/images/{sprite_sheet}') + self.current_frame = 0 + self.animation_speed = 250 + self.last_frame_update = pg.time.get_ticks() + self.hidden = False + self.rect = pg.Rect(x, y, 40, 64) + + def load_frames(self, sprite_sheet): + sprite_sheet = pg.transform.scale2x(pg.image.load(sprite_sheet).convert_alpha()) + frame_width = 40 + frame_height = 64 + frames_coordinates = [(40, 0),(80, 0),(120, 0),(160, 0),(200, 0),(240, 0),(280, 0), (320, 0)] + self.animation_frames = [] + for x, y in frames_coordinates: + frame = pg.Surface((frame_width, frame_height), pg.SRCALPHA) + frame.blit(sprite_sheet, (0, 0), (x, y, frame_width, frame_height)) + self.animation_frames.append(frame) + + def draw(self, screen): + if self.hidden: + return + current_time = pg.time.get_ticks() + if current_time - self.last_frame_update > self.animation_speed: + self.current_frame = (self.current_frame + 1) % len(self.animation_frames) + self.last_frame_update = current_time + + current_frame_image = self.animation_frames[self.current_frame] + screen.blit(current_frame_image, (self.x, self.y)) + + self.rect.topleft = (self.x, self.y) + pg.draw.rect(screen, '#ef0120', self.rect, 2) def attack(self, moveto, obj): if self.lastAttack + self.attack_speed * 1000 < pg.time.get_ticks(): - obj[3].append(Punch('punch', 100, self.x, self.y, moveto, self.damage, MainCharacter)) + obj[3].append(Punch('punch', 100, self.x, self.y, moveto, self.damage)) self.lastAttack = pg.time.get_ticks() class Rat(Mobs): From aa83465577ed580ffe8d375a275e3a1c6d88fc22 Mon Sep 17 00:00:00 2001 From: Jefferson Mousikas Date: Mon, 11 Mar 2024 10:39:37 +0000 Subject: [PATCH 3/3] Upload files to "art/images/people" --- art/images/people/dorfaelteste.png | Bin 0 -> 581 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 art/images/people/dorfaelteste.png diff --git a/art/images/people/dorfaelteste.png b/art/images/people/dorfaelteste.png new file mode 100644 index 0000000000000000000000000000000000000000..9640039c9e3d8a2541ceda51d4d5e3669b11109b GIT binary patch literal 581 zcmV-L0=oT)P)2)578aBwF(y)DW5{f!(D*BNfo9`pA#7yGPbiax#V8AupOh#IGbmwk7n(^? zZ2gW>N{LxWHa4a##=K`bw{z#3J2TC~S>1d3-simM{l0q*l;Sd^sHeC9S(ZbRB*m=L z1wd>x8Wod)K!81qz=Qx0MuRvcCV-#L#Lq{XsI0?VOdH=pSUe@aGQhlKQl7nD@85uq z3R6ftZnD3Ty@pSu>*YSmPWz@}hetVF;{br&yH^9Q;GQ0!uDNw~g_qADRpv(6Hy;LS zoptLw00b}qq89?STCMsS*oPKF>E}xk2VsHO2|Vj|p`~YrdCj`oW&kYS#^_nlWWdE7 zfDi*EZ7P87AaOuOW;Wpp0JxsY$k|(`M8WT`nFB61SJ_$d`>I4gHKSBmZln5w$SjBf z#sxUDc9_WZ)tww*yE&-p8~|8wq3ZxeAA1w3NgTM$XJUShgaJ4e8RR)+db>YW<)GVz zk&Ro$0SCYVAU#c`Y^?d0s0k4po1N7mf9;ym1vuaf5U2S;AAk{V{yZc=LJ}8N|9m(g6IKc(6Q+ zq#OVMA&0~bQ7lFmk_H@)H?TQqUGTA=Dgff1s;A)>O^Cc0h5Noo=0My7ScLon@-rYX TS7dwe00000NkvXXu0mjfB1rkf literal 0 HcmV?d00001