From 8b2dab980bdca32c87be19b604f40d547fbef8de Mon Sep 17 00:00:00 2001 From: Lyzzy Date: Fri, 1 Mar 2024 21:46:15 +0000 Subject: [PATCH 1/4] Schaden Gegner, Buch, Angriff --- main.py | 46 +++++++++----- viecher.py | 174 +++++++++++++++++++++++++++++++++++++++++++---------- 2 files changed, 173 insertions(+), 47 deletions(-) diff --git a/main.py b/main.py index e2920b6..840dfae 100644 --- a/main.py +++ b/main.py @@ -39,9 +39,11 @@ def genRooms(WIDTH, HEIGHT, type:str): def play(screen, clock, running, background, isblack, WIDTH, HEIGHT): main = [MainCharacter('Herbert', 100, 'oldman.png', 500, 500, 20, 5, 1, 1, 50)] - mobs=[Skeleton(i, random.randint(40, 60), 'reddy.png', random.randint(20,1000), random.randint(20,700), 125, 1, 1, 1, 200) for i in range(0,random.randint(2, 8))] + mobs = [Skeleton(i, random.randint(40, 60), 'reddy.png', random.randint(20,1000), random.randint(20,700), 5, 1, 1, 1, 200) for i in range(0,random.randint(2, 8))] others = [] - objects = [main, mobs, others] + npcs = [NPC('name', 100, 'reddy.png', 1, 200, 200)] + objects = [main, mobs, npcs, others] + freeze = False #Gameplay is freezed in certain situations while running: screen.fill('#000000') @@ -49,6 +51,9 @@ def play(screen, clock, running, background, isblack, WIDTH, HEIGHT): for event in events: if event.type == pygame.QUIT: quitGame() + elif event.type == pygame.KEYDOWN: + if event.key == pygame.K_e: #when book is open gameplay is freezed + freeze = not freeze # RENDER YOUR GAME HERE """with open(background, 'r') as i: bg = pygame.image.load(i) @@ -56,20 +61,28 @@ def play(screen, clock, running, background, isblack, WIDTH, HEIGHT): # fill the screen with an image to clear the screen screen.blit(bg, (0, 0)) """ - for thing in objects[0]: - if not thing.update(pygame.key.get_pressed()): - menu(screen, clock, running, background, isblack, WIDTH, HEIGHT) - thing.draw(screen) - - for mob in objects[1]: - mob.update(objects) - mob.draw(screen) - - for thing in objects[2]: - thing.update(objects) - thing.draw(screen) - + if not freeze: + for thing in objects[0]: + thing.book.hidden = not freeze + if not thing.update(pygame.key.get_pressed(), objects): + menu(screen, clock, running, background, isblack, WIDTH, HEIGHT) + thing.draw(screen) + for mob in objects[1]: + mob.update(objects) + mob.draw(screen) + + for npc in objects[2]: + npc.update(pygame.key.get_pressed(), objects) + npc.draw(screen) + + for thing in objects[3]: + thing.update(objects) + thing.draw(screen) + else: + objects[0][0].book.hidden = not freeze + objects[0][0].book.draw(screen) + objects[0][0].book.update() # flip() the display to put your work on screen pygame.display.flip() @@ -170,8 +183,9 @@ def main(): #objects.append(Button(WIDTH / 2 - 80, HEIGHT / 2 - 72, 160, 64, 'medieval', 48, "Play", play)) #objects.append(Button(WIDTH / 2 - 80, HEIGHT / 2, 160, 64, 'medieval', 48, "Options", uwu)) #objects.append(Button(WIDTH / 2 - 80, HEIGHT / 2 + 72, 160, 64, 'medieval', 48, "Exit game", quitGame)) - test(screen, clock, running, background, isblack, WIDTH, HEIGHT) menu(screen, clock, running, background, isblack, WIDTH, HEIGHT) + test(screen, clock, running, background, isblack, WIDTH, HEIGHT) + """while running: for event in pygame.event.get(): if event.type == pygame.QUIT: diff --git a/viecher.py b/viecher.py index 162fff4..701347b 100644 --- a/viecher.py +++ b/viecher.py @@ -45,7 +45,6 @@ class Objects(): self.x = x self.y = y self.hidden = False - self.rect = pg.Rect(self.x, self.y, self.sprite.get_width(), self.sprite.get_height()) def draw(self, screen): @@ -54,9 +53,59 @@ class Objects(): self.rect.x, self.rect.y = self.x, self.y screen.blit(self.sprite, self.rect) - class NPC(Objects): - pass + def __init__(self, name, ms, sprite, convo_act, x, y) -> None: + self.talking = False + self.hidden = True + super().__init__(name, ms, sprite, x, y) + self.conversation = Convo('Hallo', convo_act, 'person') + + def talk(self, objects): + self.talking = True + objects[0][0].talking = True + self.conversation.hidden = False + + def draw(self, screen): + super().draw(screen) + if self.talking == True: + self.conversation.draw(screen) + + def update(self, keys, objects): + if self.talking: + self.conversation.update(keys, objects) + +class Convo(): + def __init__(self, text, convo_act, person, x = 140, y = 600, width = 1000, height = 100, font='simple', font_size = 20) -> None: + self.x = x + self.y = y + self.width = width + self.height = height + self.hidden = False + self.font = pg.font.Font(f'fonts/{fonts[font]}', font_size) + with open('art/images/label.png', 'r') as tb: + self.box = pg.image.load(tb) + self.box = pg.transform.scale(self.box, (width, height)) + self.labelRect = pg.Rect(self.x, self.y, self.width, self.height) + self.labelSurf = self.font.render(text, True, '#1E90FF') + + + def draw(self, screen): + if self.hidden: + return + self.box.blit(self.labelSurf, [ + self.labelRect.width/2 - self.labelSurf.get_rect().width/2, + self.labelRect.height/2 - self.labelSurf.get_rect().height/2 + ]) + screen.blit(self.box, self.labelRect) + + def update(self, keys, objects): + if keys[pg.K_SPACE]: + objects[0][0].book.addspell('fireball') + self.talking = False + objects[0][0].talking = False + self.hidden = True + + class Fighter(Objects): @@ -69,18 +118,16 @@ class Fighter(Objects): self.attack_range = atr self.lastHurt = pg.time.get_ticks() self.lastAttack = pg.time.get_ticks() - self.hurtCooldown = 250 - + self.hurtCooldown = 0 class MainCharacter(Fighter): - def __init__(self, name, ms, sprite, x, y, health, damage, level, asp, atr, weapon=None, shield=None) -> None: + def __init__(self, name, ms, sprite, x, y, health, damage, level, asp, atr) -> None: super().__init__(name, ms, sprite, x, y, health, damage, level, asp, atr) - self.attack_spell = weapon - self.shield_spell = shield + self.book = Book(0, 0, [], None, None) self.talking = False self.level = Level(1000, 38, level, 150, 40, 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) + self.health = Hearts(health, sprite=['fullheart.png', 'fullheart.png', 'fullheart.png', 'fullheart.png', 'fullheart.png'], x=900, y= 50, hurtCooldown=self.hurtCooldown) def draw(self, screen): if self.hidden: @@ -89,9 +136,11 @@ class MainCharacter(Fighter): screen.blit(self.sprite, self.rect) self.health.draw(screen) self.level.draw(screen) + self.book.draw(screen) - def hurt(self, damage): - self.health.hurt(damage) + def hurt(self, damage, objects): + if not self.talking: + self.health.hurt(damage) def walk(self, keys, objects): moveto = vec(0, 0) @@ -106,26 +155,40 @@ class MainCharacter(Fighter): if not moveto == vec(0, 0): moveto.scale_to_length(self.speed) self.x += moveto[0] / fps - self.y += moveto[1] / fps + self.y += moveto[1] / fps touches = pg.sprite.spritecollideany(self, objects[1] + objects[2]) if touches is not None: - self.x -= moveto[0] / fps #change later - self.y -= moveto[1] / fps #change later + self.x -= moveto[0]*1.5 / fps #change later + self.y -= moveto[1]*1.5 / fps #change later + if isinstance(touches, NPC): + touches.talk(objects) + + def attack(self, obj, moveto = vec(0,1)): + if self.lastAttack + self.attack_speed * 1000 < pg.time.get_ticks(): + if self.book.current_sp == 'fireball': + weapon = Fireball('fb1', 100, self.x, self.y, moveto, 5) + else: + return + obj[3].append(weapon) + self.lastAttack = pg.time.get_ticks() def update(self, keys, objects): - self.walk(keys, objects) + if not self.talking: + self.walk(keys, objects) + if keys[pg.K_f]: + self.attack(objects) if self.health.health <= 0: return False else: return True class Hearts(): - def __init__(self, health, sprite, x, y) -> None: + def __init__(self, health, sprite, x, y, hurtCooldown) -> None: self.x = x self.y = y self.health = health self.lastHurt = pg.time.get_ticks() - self.hurtCooldown = 1000 + self.hurtCooldown = hurtCooldown self.hidden = False self.sprite=[] for parts in sprite: @@ -188,7 +251,33 @@ class Level(): self.labelRect.height / 2 - self.labelSurf.get_rect().height / 2 ]) screen.blit(self.box, self.labelRect) - + +class Book(): + def __init__(self, x, y, spells, current_spell, current_shield) -> None: + with open(f'art/images/book.png') as i: + self.sprite = pg.image.load(i) + self.sprite = pg.transform.scale(self.sprite, (1280, 720)) + self.x = x + self.y = y + self.hidden = True + self.rect = pg.Rect(self.x, self.y, self.sprite.get_width(), self.sprite.get_height()) + self.sp_list = spells + self.current_sp = current_spell + + def draw(self, screen): + if self.hidden: + return + self.rect.x, self.rect.y = self.x, self.y + screen.blit(self.sprite, self.rect) + + def addspell(self, spell): + if spell not in self.sp_list: + self.sp_list.append(spell) + self.current_sp = spell + def update(self): + pass + + class Mobs(Fighter): def __init__(self, name, ms, sprite, x, y, health, damage, level, asp, atr, drops) -> None: super().__init__(name, ms, sprite, x, y, health, damage, level, asp, atr) @@ -211,8 +300,14 @@ class Skeleton(Mobs): def attack(self, moveto, obj): if self.lastAttack + self.attack_speed * 1000 < pg.time.get_ticks(): - obj[1].append(Arrow("arrow", 200, self.x, self.y, moveto, self.damage)) + obj[3].append(Arrow("arrow", 200, self.x, self.y, moveto, self.damage)) self.lastAttack = pg.time.get_ticks() + + def hurt(self, damage, objects): + self.health -= damage + if self.health <= 0: + self.hidden = True + objects[1].remove(self) def update(self, obj): self.chase(obj) @@ -223,27 +318,44 @@ class Weapons(Objects): super().__init__(name, ms, sprite, x, y) self.moveto = moveto self.damage = damage - - -class Arrow(Weapons): - def __init__(self, name, ms, x, y, moveto, damage, sprite="arrow.png") -> None: - super().__init__(name, ms, sprite, x, y, moveto, damage) pos = vec(1,0) angle = pos.angle_to(moveto) with open(f'art/images/{sprite}') as i: self.sprite = pg.transform.rotate(pg.image.load(i), -angle) + + def die(self, objects, kills): + touches = pg.sprite.spritecollideany(self, objects[0] + objects[1]) + if touches is not None and isinstance(touches, kills): + touches.hurt(self.damage, objects) + self.hidden = True + objects[3].remove(self) + +class Spells(Weapons): + def __init__(self, name, ms, sprite, x, y, moveto, damage) -> None: + super().__init__(name, ms, sprite, x, y, moveto, damage) + +class Fireball(Spells): + def __init__(self, name, ms, x, y, moveto, damage, sprite = 'fireball.png') -> None: + super().__init__(name, ms, sprite, x, y, moveto, damage) + + def move(self): + self.moveto.scale_to_length(self.speed) + self.x += self.moveto[0] / fps + self.y += self.moveto[1] / fps + + def update(self, objects): + self.move() + self.die(objects, Mobs) + +class Arrow(Weapons): + def __init__(self, name, ms, x, y, moveto, damage, sprite = 'arrow.png') -> None: + super().__init__(name, ms, sprite, x, y, moveto, damage) def move(self): self.moveto.scale_to_length(self.speed) self.x += self.moveto[0] / fps self.y += self.moveto[1] / fps - def die(self, objects): - touches = pg.sprite.spritecollideany(self, objects[0]) - if touches is not None and isinstance(touches, MainCharacter): - touches.hurt(self.damage) - self.hidden = True - def update(self, objects): self.move() - self.die(objects) + self.die(objects, MainCharacter) -- 2.45.3 From 5625db18c7180a4c521896be86ec3232c4ab478f Mon Sep 17 00:00:00 2001 From: Lyzzy Date: Fri, 1 Mar 2024 21:47:51 +0000 Subject: [PATCH 2/4] Buch and Feuer added changable --- art/images/book.png | Bin 0 -> 130697 bytes art/images/fireball.png | Bin 0 -> 495 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 art/images/book.png create mode 100644 art/images/fireball.png diff --git a/art/images/book.png b/art/images/book.png new file mode 100644 index 0000000000000000000000000000000000000000..580c3aa7ee03a670a13dbd3a31d5cf186a496a4a GIT binary patch literal 130697 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

uaZx5yT%+OR)eNa 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 n3Uv9XM!H)x98Gyjk)z4*}Q$iB}vP*>U literal 0 HcmV?d00001 diff --git a/art/images/fireball.png b/art/images/fireball.png new file mode 100644 index 0000000000000000000000000000000000000000..c893360b13cecba0b7d3a97893135ed06592b536 GIT binary patch literal 495 zcmV`N5Jhiw$8jA927f>l(N$av@ei^I&IAPiz=Z>GFBysAALvHMar_9g6>+1IMBE2W zL?NqWc-`fx#*G^Z%))-~-s`S=Z&lrD)11rZo zRH>#EU{wtQInLQ5J}AY;Df#*kITe(M@@jmx1|jw}S80^>D$b0vNW__S*?bBl3Rv5} zsowh?D2b;a2ne2MDSsq4DQ!DzLgX(G>d(hMS-P+FAu21&>aJgIEjeW`bjPY+4(Nh< zXNS@!Fe9oME4$HDAw#B=wf$S_J>O9YR}jgUmYW5$-l9@*< z!}TyVXFS1;a~EVEj#MDOX-5B9-LEG;SsbdrSv0$|s)fB><#*qpnsQXr#!IG$82Z39 z9hq*|!WhZSG-B-9sBSL;h1*;L#zbe7o8qRlL;&&2Q0r4~yBhV!Q%_6x+NOY;VtawS lf%;jl`I$if68irFzX8|Yyt7v{v2y?b002ovPDHLkV1g>-;eh}E literal 0 HcmV?d00001 -- 2.45.3 From f6827b5f056413e6b95a797b58dbad4759969fc2 Mon Sep 17 00:00:00 2001 From: Lyzzy Date: Fri, 1 Mar 2024 21:50:39 +0000 Subject: [PATCH 3/4] revert 8b2dab980bdca32c87be19b604f40d547fbef8de revert Schaden Gegner, Buch, Angriff --- main.py | 46 +++++--------- viecher.py | 178 ++++++++++------------------------------------------- 2 files changed, 49 insertions(+), 175 deletions(-) diff --git a/main.py b/main.py index 840dfae..0b04ece 100644 --- a/main.py +++ b/main.py @@ -39,11 +39,9 @@ def genRooms(WIDTH, HEIGHT, type:str): def play(screen, clock, running, background, isblack, WIDTH, HEIGHT): main = [MainCharacter('Herbert', 100, 'oldman.png', 500, 500, 20, 5, 1, 1, 50)] - mobs = [Skeleton(i, random.randint(40, 60), 'reddy.png', random.randint(20,1000), random.randint(20,700), 5, 1, 1, 1, 200) for i in range(0,random.randint(2, 8))] + mobs=[Skeleton(i, random.randint(40, 60), 'reddy.png', random.randint(20,1000), random.randint(20,700), 125, 1, 1, 1, 200) for i in range(0,random.randint(2, 8))] others = [] - npcs = [NPC('name', 100, 'reddy.png', 1, 200, 200)] - objects = [main, mobs, npcs, others] - freeze = False #Gameplay is freezed in certain situations + objects = [main, mobs, others] while running: screen.fill('#000000') @@ -51,9 +49,6 @@ def play(screen, clock, running, background, isblack, WIDTH, HEIGHT): for event in events: if event.type == pygame.QUIT: quitGame() - elif event.type == pygame.KEYDOWN: - if event.key == pygame.K_e: #when book is open gameplay is freezed - freeze = not freeze # RENDER YOUR GAME HERE """with open(background, 'r') as i: bg = pygame.image.load(i) @@ -61,28 +56,20 @@ def play(screen, clock, running, background, isblack, WIDTH, HEIGHT): # fill the screen with an image to clear the screen screen.blit(bg, (0, 0)) """ - if not freeze: - for thing in objects[0]: - thing.book.hidden = not freeze - if not thing.update(pygame.key.get_pressed(), objects): - menu(screen, clock, running, background, isblack, WIDTH, HEIGHT) - thing.draw(screen) + for thing in objects[0]: + if not thing.update(pygame.key.get_pressed()): + menu(screen, clock, running, background, isblack, WIDTH, HEIGHT) + thing.draw(screen) + + for mob in objects[1]: + mob.update(objects) + mob.draw(screen) + + for thing in objects[2]: + thing.update(objects) + thing.draw(screen) + - for mob in objects[1]: - mob.update(objects) - mob.draw(screen) - - for npc in objects[2]: - npc.update(pygame.key.get_pressed(), objects) - npc.draw(screen) - - for thing in objects[3]: - thing.update(objects) - thing.draw(screen) - else: - objects[0][0].book.hidden = not freeze - objects[0][0].book.draw(screen) - objects[0][0].book.update() # flip() the display to put your work on screen pygame.display.flip() @@ -183,9 +170,8 @@ def main(): #objects.append(Button(WIDTH / 2 - 80, HEIGHT / 2 - 72, 160, 64, 'medieval', 48, "Play", play)) #objects.append(Button(WIDTH / 2 - 80, HEIGHT / 2, 160, 64, 'medieval', 48, "Options", uwu)) #objects.append(Button(WIDTH / 2 - 80, HEIGHT / 2 + 72, 160, 64, 'medieval', 48, "Exit game", quitGame)) - menu(screen, clock, running, background, isblack, WIDTH, HEIGHT) test(screen, clock, running, background, isblack, WIDTH, HEIGHT) - + menu(screen, clock, running, background, isblack, WIDTH, HEIGHT) """while running: for event in pygame.event.get(): if event.type == pygame.QUIT: diff --git a/viecher.py b/viecher.py index 701347b..f3f07bd 100644 --- a/viecher.py +++ b/viecher.py @@ -45,6 +45,7 @@ class Objects(): self.x = x self.y = y self.hidden = False + self.rect = pg.Rect(self.x, self.y, self.sprite.get_width(), self.sprite.get_height()) def draw(self, screen): @@ -53,59 +54,9 @@ class Objects(): self.rect.x, self.rect.y = self.x, self.y screen.blit(self.sprite, self.rect) + class NPC(Objects): - def __init__(self, name, ms, sprite, convo_act, x, y) -> None: - self.talking = False - self.hidden = True - super().__init__(name, ms, sprite, x, y) - self.conversation = Convo('Hallo', convo_act, 'person') - - def talk(self, objects): - self.talking = True - objects[0][0].talking = True - self.conversation.hidden = False - - def draw(self, screen): - super().draw(screen) - if self.talking == True: - self.conversation.draw(screen) - - def update(self, keys, objects): - if self.talking: - self.conversation.update(keys, objects) - -class Convo(): - def __init__(self, text, convo_act, person, x = 140, y = 600, width = 1000, height = 100, font='simple', font_size = 20) -> None: - self.x = x - self.y = y - self.width = width - self.height = height - self.hidden = False - self.font = pg.font.Font(f'fonts/{fonts[font]}', font_size) - with open('art/images/label.png', 'r') as tb: - self.box = pg.image.load(tb) - self.box = pg.transform.scale(self.box, (width, height)) - self.labelRect = pg.Rect(self.x, self.y, self.width, self.height) - self.labelSurf = self.font.render(text, True, '#1E90FF') - - - def draw(self, screen): - if self.hidden: - return - self.box.blit(self.labelSurf, [ - self.labelRect.width/2 - self.labelSurf.get_rect().width/2, - self.labelRect.height/2 - self.labelSurf.get_rect().height/2 - ]) - screen.blit(self.box, self.labelRect) - - def update(self, keys, objects): - if keys[pg.K_SPACE]: - objects[0][0].book.addspell('fireball') - self.talking = False - objects[0][0].talking = False - self.hidden = True - - + pass class Fighter(Objects): @@ -118,16 +69,18 @@ class Fighter(Objects): self.attack_range = atr self.lastHurt = pg.time.get_ticks() self.lastAttack = pg.time.get_ticks() - self.hurtCooldown = 0 + self.hurtCooldown = 250 + class MainCharacter(Fighter): - def __init__(self, name, ms, sprite, x, y, health, damage, level, asp, atr) -> None: + def __init__(self, name, ms, sprite, x, y, health, damage, level, asp, atr, weapon=None, shield=None) -> None: super().__init__(name, ms, sprite, x, y, health, damage, level, asp, atr) - self.book = Book(0, 0, [], None, None) + self.attack_spell = weapon + self.shield_spell = shield self.talking = False self.level = Level(1000, 38, level, 150, 40, 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.health = Hearts(health, sprite=['fullheart.png', 'fullheart.png', 'fullheart.png', 'fullheart.png', 'fullheart.png'], x=900, y= 50) def draw(self, screen): if self.hidden: @@ -136,11 +89,9 @@ class MainCharacter(Fighter): screen.blit(self.sprite, self.rect) self.health.draw(screen) self.level.draw(screen) - self.book.draw(screen) - def hurt(self, damage, objects): - if not self.talking: - self.health.hurt(damage) + def hurt(self, damage): + self.health.hurt(damage) def walk(self, keys, objects): moveto = vec(0, 0) @@ -155,40 +106,26 @@ class MainCharacter(Fighter): if not moveto == vec(0, 0): moveto.scale_to_length(self.speed) self.x += moveto[0] / fps - self.y += moveto[1] / fps + self.y += moveto[1] / fps touches = pg.sprite.spritecollideany(self, objects[1] + objects[2]) if touches is not None: - self.x -= moveto[0]*1.5 / fps #change later - self.y -= moveto[1]*1.5 / fps #change later - if isinstance(touches, NPC): - touches.talk(objects) - - def attack(self, obj, moveto = vec(0,1)): - if self.lastAttack + self.attack_speed * 1000 < pg.time.get_ticks(): - if self.book.current_sp == 'fireball': - weapon = Fireball('fb1', 100, self.x, self.y, moveto, 5) - else: - return - obj[3].append(weapon) - self.lastAttack = pg.time.get_ticks() + self.x -= moveto[0] / fps #change later + self.y -= moveto[1] / fps #change later def update(self, keys, objects): - if not self.talking: - self.walk(keys, objects) - if keys[pg.K_f]: - self.attack(objects) + self.walk(keys, objects) if self.health.health <= 0: return False else: return True class Hearts(): - def __init__(self, health, sprite, x, y, hurtCooldown) -> None: + def __init__(self, health, sprite, x, y) -> None: self.x = x self.y = y self.health = health self.lastHurt = pg.time.get_ticks() - self.hurtCooldown = hurtCooldown + self.hurtCooldown = 1000 self.hidden = False self.sprite=[] for parts in sprite: @@ -252,32 +189,6 @@ class Level(): ]) screen.blit(self.box, self.labelRect) -class Book(): - def __init__(self, x, y, spells, current_spell, current_shield) -> None: - with open(f'art/images/book.png') as i: - self.sprite = pg.image.load(i) - self.sprite = pg.transform.scale(self.sprite, (1280, 720)) - self.x = x - self.y = y - self.hidden = True - self.rect = pg.Rect(self.x, self.y, self.sprite.get_width(), self.sprite.get_height()) - self.sp_list = spells - self.current_sp = current_spell - - def draw(self, screen): - if self.hidden: - return - self.rect.x, self.rect.y = self.x, self.y - screen.blit(self.sprite, self.rect) - - def addspell(self, spell): - if spell not in self.sp_list: - self.sp_list.append(spell) - self.current_sp = spell - def update(self): - pass - - class Mobs(Fighter): def __init__(self, name, ms, sprite, x, y, health, damage, level, asp, atr, drops) -> None: super().__init__(name, ms, sprite, x, y, health, damage, level, asp, atr) @@ -300,14 +211,8 @@ class Skeleton(Mobs): def attack(self, moveto, obj): if self.lastAttack + self.attack_speed * 1000 < pg.time.get_ticks(): - obj[3].append(Arrow("arrow", 200, self.x, self.y, moveto, self.damage)) + obj[1].append(Arrow("arrow", 200, self.x, self.y, moveto, self.damage)) self.lastAttack = pg.time.get_ticks() - - def hurt(self, damage, objects): - self.health -= damage - if self.health <= 0: - self.hidden = True - objects[1].remove(self) def update(self, obj): self.chase(obj) @@ -318,44 +223,27 @@ class Weapons(Objects): super().__init__(name, ms, sprite, x, y) self.moveto = moveto self.damage = damage + + +class Arrow(Weapons): + def __init__(self, name, ms, x, y, moveto, damage, sprite="arrow.png") -> None: + super().__init__(name, ms, sprite, x, y, moveto, damage) pos = vec(1,0) angle = pos.angle_to(moveto) with open(f'art/images/{sprite}') as i: self.sprite = pg.transform.rotate(pg.image.load(i), -angle) + + def move(self): + self.moveto.scale_to_length(self.speed) + self.x += self.moveto[0] / fps + self.y += self.moveto[1] / fps - def die(self, objects, kills): - touches = pg.sprite.spritecollideany(self, objects[0] + objects[1]) - if touches is not None and isinstance(touches, kills): - touches.hurt(self.damage, objects) + def die(self, objects): + touches = pg.sprite.spritecollideany(self, objects[0]) + if touches is not None and isinstance(touches, MainCharacter): + touches.hurt(self.damage) self.hidden = True - objects[3].remove(self) - -class Spells(Weapons): - def __init__(self, name, ms, sprite, x, y, moveto, damage) -> None: - super().__init__(name, ms, sprite, x, y, moveto, damage) - -class Fireball(Spells): - def __init__(self, name, ms, x, y, moveto, damage, sprite = 'fireball.png') -> None: - super().__init__(name, ms, sprite, x, y, moveto, damage) - - def move(self): - self.moveto.scale_to_length(self.speed) - self.x += self.moveto[0] / fps - self.y += self.moveto[1] / fps def update(self, objects): self.move() - self.die(objects, Mobs) - -class Arrow(Weapons): - def __init__(self, name, ms, x, y, moveto, damage, sprite = 'arrow.png') -> None: - super().__init__(name, ms, sprite, x, y, moveto, damage) - - def move(self): - self.moveto.scale_to_length(self.speed) - self.x += self.moveto[0] / fps - self.y += self.moveto[1] / fps - - def update(self, objects): - self.move() - self.die(objects, MainCharacter) + self.die(objects) -- 2.45.3 From b29a279fb10dc2fe637c0a8b8ef895a05e8a7c61 Mon Sep 17 00:00:00 2001 From: Lyzzy Date: Fri, 1 Mar 2024 21:56:14 +0000 Subject: [PATCH 4/4] Gegner Schaden, Buch, Main Angriff, NPC MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Dem Gegner kann jetzt durch Main Angriff Schaden zugefügt werden und er kann sterben Das Buch kann durch Drücken von e geöffnet werden, das Spiel hält an Der Main kann (nachdem mit NPC geredet) Feuerbälle mit f schießen (Schussrichtung adden!!) Ein NPC wurde hinzugefügt, der steht. Main redet automatisch mit ihm wenn main reinläuft. Durch Leertaste wird Unterhaltung beendet. --- main.py | 46 +++++++++----- viecher.py | 172 +++++++++++++++++++++++++++++++++++++++++++---------- 2 files changed, 172 insertions(+), 46 deletions(-) diff --git a/main.py b/main.py index 0b04ece..840dfae 100644 --- a/main.py +++ b/main.py @@ -39,9 +39,11 @@ def genRooms(WIDTH, HEIGHT, type:str): def play(screen, clock, running, background, isblack, WIDTH, HEIGHT): main = [MainCharacter('Herbert', 100, 'oldman.png', 500, 500, 20, 5, 1, 1, 50)] - mobs=[Skeleton(i, random.randint(40, 60), 'reddy.png', random.randint(20,1000), random.randint(20,700), 125, 1, 1, 1, 200) for i in range(0,random.randint(2, 8))] + mobs = [Skeleton(i, random.randint(40, 60), 'reddy.png', random.randint(20,1000), random.randint(20,700), 5, 1, 1, 1, 200) for i in range(0,random.randint(2, 8))] others = [] - objects = [main, mobs, others] + npcs = [NPC('name', 100, 'reddy.png', 1, 200, 200)] + objects = [main, mobs, npcs, others] + freeze = False #Gameplay is freezed in certain situations while running: screen.fill('#000000') @@ -49,6 +51,9 @@ def play(screen, clock, running, background, isblack, WIDTH, HEIGHT): for event in events: if event.type == pygame.QUIT: quitGame() + elif event.type == pygame.KEYDOWN: + if event.key == pygame.K_e: #when book is open gameplay is freezed + freeze = not freeze # RENDER YOUR GAME HERE """with open(background, 'r') as i: bg = pygame.image.load(i) @@ -56,20 +61,28 @@ def play(screen, clock, running, background, isblack, WIDTH, HEIGHT): # fill the screen with an image to clear the screen screen.blit(bg, (0, 0)) """ - for thing in objects[0]: - if not thing.update(pygame.key.get_pressed()): - menu(screen, clock, running, background, isblack, WIDTH, HEIGHT) - thing.draw(screen) - - for mob in objects[1]: - mob.update(objects) - mob.draw(screen) - - for thing in objects[2]: - thing.update(objects) - thing.draw(screen) - + if not freeze: + for thing in objects[0]: + thing.book.hidden = not freeze + if not thing.update(pygame.key.get_pressed(), objects): + menu(screen, clock, running, background, isblack, WIDTH, HEIGHT) + thing.draw(screen) + for mob in objects[1]: + mob.update(objects) + mob.draw(screen) + + for npc in objects[2]: + npc.update(pygame.key.get_pressed(), objects) + npc.draw(screen) + + for thing in objects[3]: + thing.update(objects) + thing.draw(screen) + else: + objects[0][0].book.hidden = not freeze + objects[0][0].book.draw(screen) + objects[0][0].book.update() # flip() the display to put your work on screen pygame.display.flip() @@ -170,8 +183,9 @@ def main(): #objects.append(Button(WIDTH / 2 - 80, HEIGHT / 2 - 72, 160, 64, 'medieval', 48, "Play", play)) #objects.append(Button(WIDTH / 2 - 80, HEIGHT / 2, 160, 64, 'medieval', 48, "Options", uwu)) #objects.append(Button(WIDTH / 2 - 80, HEIGHT / 2 + 72, 160, 64, 'medieval', 48, "Exit game", quitGame)) - test(screen, clock, running, background, isblack, WIDTH, HEIGHT) menu(screen, clock, running, background, isblack, WIDTH, HEIGHT) + test(screen, clock, running, background, isblack, WIDTH, HEIGHT) + """while running: for event in pygame.event.get(): if event.type == pygame.QUIT: diff --git a/viecher.py b/viecher.py index f3f07bd..4dfcf6c 100644 --- a/viecher.py +++ b/viecher.py @@ -45,7 +45,6 @@ class Objects(): self.x = x self.y = y self.hidden = False - self.rect = pg.Rect(self.x, self.y, self.sprite.get_width(), self.sprite.get_height()) def draw(self, screen): @@ -54,9 +53,59 @@ class Objects(): self.rect.x, self.rect.y = self.x, self.y screen.blit(self.sprite, self.rect) - class NPC(Objects): - pass + def __init__(self, name, ms, sprite, convo_act, x, y) -> None: + self.talking = False + self.hidden = True + super().__init__(name, ms, sprite, x, y) + self.conversation = Convo('Hello, you can shoot fireballs with f now.', convo_act, 'person') + + def talk(self, objects): + self.talking = True + objects[0][0].talking = True + self.conversation.hidden = False + + def draw(self, screen): + super().draw(screen) + if self.talking == True: + self.conversation.draw(screen) + + def update(self, keys, objects): + if self.talking: + self.conversation.update(keys, objects) + +class Convo(): + def __init__(self, text, convo_act, person, x = 140, y = 600, width = 1000, height = 100, font='simple', font_size = 20) -> None: + self.x = x + self.y = y + self.width = width + self.height = height + self.hidden = False + self.font = pg.font.Font(f'fonts/{fonts[font]}', font_size) + with open('art/images/label.png', 'r') as tb: + self.box = pg.image.load(tb) + self.box = pg.transform.scale(self.box, (width, height)) + self.labelRect = pg.Rect(self.x, self.y, self.width, self.height) + self.labelSurf = self.font.render(text, True, '#1E90FF') + + + def draw(self, screen): + if self.hidden: + return + self.box.blit(self.labelSurf, [ + self.labelRect.width/2 - self.labelSurf.get_rect().width/2, + self.labelRect.height/2 - self.labelSurf.get_rect().height/2 + ]) + screen.blit(self.box, self.labelRect) + + def update(self, keys, objects): + if keys[pg.K_SPACE]: + objects[0][0].book.addspell('fireball') + self.talking = False + objects[0][0].talking = False + self.hidden = True + + class Fighter(Objects): @@ -69,18 +118,16 @@ class Fighter(Objects): self.attack_range = atr self.lastHurt = pg.time.get_ticks() self.lastAttack = pg.time.get_ticks() - self.hurtCooldown = 250 - + self.hurtCooldown = 0 class MainCharacter(Fighter): - def __init__(self, name, ms, sprite, x, y, health, damage, level, asp, atr, weapon=None, shield=None) -> None: + def __init__(self, name, ms, sprite, x, y, health, damage, level, asp, atr) -> None: super().__init__(name, ms, sprite, x, y, health, damage, level, asp, atr) - self.attack_spell = weapon - self.shield_spell = shield + self.book = Book(0, 0, [], None, None) self.talking = False self.level = Level(1000, 38, level, 150, 40, 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) + self.health = Hearts(health, sprite=['fullheart.png', 'fullheart.png', 'fullheart.png', 'fullheart.png', 'fullheart.png'], x=900, y= 50, hurtCooldown=self.hurtCooldown) def draw(self, screen): if self.hidden: @@ -89,9 +136,11 @@ class MainCharacter(Fighter): screen.blit(self.sprite, self.rect) self.health.draw(screen) self.level.draw(screen) + self.book.draw(screen) - def hurt(self, damage): - self.health.hurt(damage) + def hurt(self, damage, objects): + if not self.talking: + self.health.hurt(damage) def walk(self, keys, objects): moveto = vec(0, 0) @@ -106,26 +155,40 @@ class MainCharacter(Fighter): if not moveto == vec(0, 0): moveto.scale_to_length(self.speed) self.x += moveto[0] / fps - self.y += moveto[1] / fps + self.y += moveto[1] / fps touches = pg.sprite.spritecollideany(self, objects[1] + objects[2]) if touches is not None: - self.x -= moveto[0] / fps #change later - self.y -= moveto[1] / fps #change later + self.x -= moveto[0]*1.5 / fps #change later + self.y -= moveto[1]*1.5 / fps #change later + if isinstance(touches, NPC): + touches.talk(objects) + + def attack(self, obj, moveto = vec(0,1)): + if self.lastAttack + self.attack_speed * 1000 < pg.time.get_ticks(): + if self.book.current_sp == 'fireball': + weapon = Fireball('fb1', 100, self.x, self.y, moveto, 5) + else: + return + obj[3].append(weapon) + self.lastAttack = pg.time.get_ticks() def update(self, keys, objects): - self.walk(keys, objects) + if not self.talking: + self.walk(keys, objects) + if keys[pg.K_f]: + self.attack(objects) if self.health.health <= 0: return False else: return True class Hearts(): - def __init__(self, health, sprite, x, y) -> None: + def __init__(self, health, sprite, x, y, hurtCooldown) -> None: self.x = x self.y = y self.health = health self.lastHurt = pg.time.get_ticks() - self.hurtCooldown = 1000 + self.hurtCooldown = hurtCooldown self.hidden = False self.sprite=[] for parts in sprite: @@ -189,6 +252,32 @@ class Level(): ]) screen.blit(self.box, self.labelRect) +class Book(): + def __init__(self, x, y, spells, current_spell, current_shield) -> None: + with open(f'art/images/book.png') as i: + self.sprite = pg.image.load(i) + self.sprite = pg.transform.scale(self.sprite, (1280, 720)) + self.x = x + self.y = y + self.hidden = True + self.rect = pg.Rect(self.x, self.y, self.sprite.get_width(), self.sprite.get_height()) + self.sp_list = spells + self.current_sp = current_spell + + def draw(self, screen): + if self.hidden: + return + self.rect.x, self.rect.y = self.x, self.y + screen.blit(self.sprite, self.rect) + + def addspell(self, spell): + if spell not in self.sp_list: + self.sp_list.append(spell) + self.current_sp = spell + def update(self): + pass + + class Mobs(Fighter): def __init__(self, name, ms, sprite, x, y, health, damage, level, asp, atr, drops) -> None: super().__init__(name, ms, sprite, x, y, health, damage, level, asp, atr) @@ -211,8 +300,14 @@ class Skeleton(Mobs): def attack(self, moveto, obj): if self.lastAttack + self.attack_speed * 1000 < pg.time.get_ticks(): - obj[1].append(Arrow("arrow", 200, self.x, self.y, moveto, self.damage)) + obj[3].append(Arrow("arrow", 200, self.x, self.y, moveto, self.damage)) self.lastAttack = pg.time.get_ticks() + + def hurt(self, damage, objects): + self.health -= damage + if self.health <= 0: + self.hidden = True + objects[1].remove(self) def update(self, obj): self.chase(obj) @@ -223,27 +318,44 @@ class Weapons(Objects): super().__init__(name, ms, sprite, x, y) self.moveto = moveto self.damage = damage - - -class Arrow(Weapons): - def __init__(self, name, ms, x, y, moveto, damage, sprite="arrow.png") -> None: - super().__init__(name, ms, sprite, x, y, moveto, damage) pos = vec(1,0) angle = pos.angle_to(moveto) with open(f'art/images/{sprite}') as i: self.sprite = pg.transform.rotate(pg.image.load(i), -angle) + + def die(self, objects, kills): + touches = pg.sprite.spritecollideany(self, objects[0] + objects[1]) + if touches is not None and isinstance(touches, kills): + touches.hurt(self.damage, objects) + self.hidden = True + objects[3].remove(self) + +class Spells(Weapons): + def __init__(self, name, ms, sprite, x, y, moveto, damage) -> None: + super().__init__(name, ms, sprite, x, y, moveto, damage) + +class Fireball(Spells): + def __init__(self, name, ms, x, y, moveto, damage, sprite = 'fireball.png') -> None: + super().__init__(name, ms, sprite, x, y, moveto, damage) + + def move(self): + self.moveto.scale_to_length(self.speed) + self.x += self.moveto[0] / fps + self.y += self.moveto[1] / fps + + def update(self, objects): + self.move() + self.die(objects, Mobs) + +class Arrow(Weapons): + def __init__(self, name, ms, x, y, moveto, damage, sprite = 'arrow.png') -> None: + super().__init__(name, ms, sprite, x, y, moveto, damage) def move(self): self.moveto.scale_to_length(self.speed) self.x += self.moveto[0] / fps self.y += self.moveto[1] / fps - def die(self, objects): - touches = pg.sprite.spritecollideany(self, objects[0]) - if touches is not None and isinstance(touches, MainCharacter): - touches.hurt(self.damage) - self.hidden = True - def update(self, objects): self.move() - self.die(objects) + self.die(objects, MainCharacter) -- 2.45.3