diff --git a/animations/base-sword/sprite_0001.png b/animations/base-sword/sprite_0001.png new file mode 100644 index 0000000..df7a299 Binary files /dev/null and b/animations/base-sword/sprite_0001.png differ diff --git a/animations/base-sword/sprite_0002.png b/animations/base-sword/sprite_0002.png new file mode 100644 index 0000000..6d1ca63 Binary files /dev/null and b/animations/base-sword/sprite_0002.png differ diff --git a/animations/base-sword/sprite_0003.png b/animations/base-sword/sprite_0003.png new file mode 100644 index 0000000..b5850ab Binary files /dev/null and b/animations/base-sword/sprite_0003.png differ diff --git a/animations/base-sword/sprite_0004.png b/animations/base-sword/sprite_0004.png new file mode 100644 index 0000000..152f316 Binary files /dev/null and b/animations/base-sword/sprite_0004.png differ diff --git a/animations/mini_main-char/sprite_0.png b/animations/mini_main-char/sprite_0.png new file mode 100644 index 0000000..23e46eb Binary files /dev/null and b/animations/mini_main-char/sprite_0.png differ diff --git a/animations/mini_main-char/sprite_1.png b/animations/mini_main-char/sprite_1.png new file mode 100644 index 0000000..7a4f4ca Binary files /dev/null and b/animations/mini_main-char/sprite_1.png differ diff --git a/animations/mini_main-char/sprite_2.png b/animations/mini_main-char/sprite_2.png new file mode 100644 index 0000000..9b81c8e Binary files /dev/null and b/animations/mini_main-char/sprite_2.png differ diff --git a/animations/mini_main-char/sprite_3.png b/animations/mini_main-char/sprite_3.png new file mode 100644 index 0000000..7a4f4ca Binary files /dev/null and b/animations/mini_main-char/sprite_3.png differ diff --git a/animations/mini_main-char/sprite_4.png b/animations/mini_main-char/sprite_4.png new file mode 100644 index 0000000..23e46eb Binary files /dev/null and b/animations/mini_main-char/sprite_4.png differ diff --git a/animations/mini_main-char/sprite_5.png b/animations/mini_main-char/sprite_5.png new file mode 100644 index 0000000..61fded3 Binary files /dev/null and b/animations/mini_main-char/sprite_5.png differ diff --git a/animations/mini_main-char/sprite_6.png b/animations/mini_main-char/sprite_6.png new file mode 100644 index 0000000..06dc8e6 Binary files /dev/null and b/animations/mini_main-char/sprite_6.png differ diff --git a/animations/mini_main-char/sprite_7.png b/animations/mini_main-char/sprite_7.png new file mode 100644 index 0000000..61fded3 Binary files /dev/null and b/animations/mini_main-char/sprite_7.png differ diff --git a/dungeon/rooms/romm_r-t.png b/dungeon/rooms/romm_r-t.png new file mode 100644 index 0000000..cb19a50 Binary files /dev/null and b/dungeon/rooms/romm_r-t.png differ diff --git a/dungeon/rooms/room-l.png b/dungeon/rooms/room-l.png new file mode 100644 index 0000000..b4d9e4c Binary files /dev/null and b/dungeon/rooms/room-l.png differ diff --git a/dungeon/rooms/room-t.png b/dungeon/rooms/room-t.png new file mode 100644 index 0000000..f47ecef Binary files /dev/null and b/dungeon/rooms/room-t.png differ diff --git a/dungeon/rooms/room_AllExcB.png b/dungeon/rooms/room_AllExcB.png new file mode 100644 index 0000000..24f7c6f Binary files /dev/null and b/dungeon/rooms/room_AllExcB.png differ diff --git a/dungeon/rooms/room_AllExcL.png b/dungeon/rooms/room_AllExcL.png new file mode 100644 index 0000000..c4af139 Binary files /dev/null and b/dungeon/rooms/room_AllExcL.png differ diff --git a/dungeon/rooms/room_AllExcR.png b/dungeon/rooms/room_AllExcR.png new file mode 100644 index 0000000..ee9aa4e Binary files /dev/null and b/dungeon/rooms/room_AllExcR.png differ diff --git a/dungeon/rooms/room_AllExcT.png b/dungeon/rooms/room_AllExcT.png new file mode 100644 index 0000000..1ef19d8 Binary files /dev/null and b/dungeon/rooms/room_AllExcT.png differ diff --git a/dungeon/rooms/room_all.png b/dungeon/rooms/room_all.png new file mode 100644 index 0000000..b0a8967 Binary files /dev/null and b/dungeon/rooms/room_all.png differ diff --git a/dungeon/rooms/room_b.png b/dungeon/rooms/room_b.png new file mode 100644 index 0000000..317d677 Binary files /dev/null and b/dungeon/rooms/room_b.png differ diff --git a/dungeon/rooms/room_l-b.png b/dungeon/rooms/room_l-b.png new file mode 100644 index 0000000..0f334a9 Binary files /dev/null and b/dungeon/rooms/room_l-b.png differ diff --git a/dungeon/rooms/room_l-t.png b/dungeon/rooms/room_l-t.png new file mode 100644 index 0000000..cb4045c Binary files /dev/null and b/dungeon/rooms/room_l-t.png differ diff --git a/dungeon/rooms/room_r-b.png b/dungeon/rooms/room_r-b.png new file mode 100644 index 0000000..6431152 Binary files /dev/null and b/dungeon/rooms/room_r-b.png differ diff --git a/dungeon/rooms/room_r-l.png b/dungeon/rooms/room_r-l.png new file mode 100644 index 0000000..9d1327f Binary files /dev/null and b/dungeon/rooms/room_r-l.png differ diff --git a/dungeon/rooms/room_t-b.png b/dungeon/rooms/room_t-b.png new file mode 100644 index 0000000..061f891 Binary files /dev/null and b/dungeon/rooms/room_t-b.png differ diff --git a/img/main-char.pdf b/img/main-char.pdf new file mode 100644 index 0000000..789ff9d Binary files /dev/null and b/img/main-char.pdf differ diff --git a/img/main-char.png b/img/main-char.png new file mode 100644 index 0000000..4d84e86 Binary files /dev/null and b/img/main-char.png differ diff --git a/img/mini_main-char.pdf b/img/mini_main-char.pdf new file mode 100644 index 0000000..9347108 Binary files /dev/null and b/img/mini_main-char.pdf differ diff --git a/img/mini_main-char.png b/img/mini_main-char.png new file mode 100644 index 0000000..23e46eb Binary files /dev/null and b/img/mini_main-char.png differ diff --git a/main.py b/main.py index 47ccb9f..8ab9f5a 100644 --- a/main.py +++ b/main.py @@ -23,7 +23,10 @@ next_room = randint(0, 6) # перенести на переход персонажа +player_equipment = ['base-armor', 'base-sword'] + def dungeon(): + global player_equipment room = Dungeon_room(win_width, win_height) room.blit_new_room(out_from, win, next_room) hero.blit(win) diff --git a/player.py b/player.py index 614abab..b4a9ed5 100644 --- a/player.py +++ b/player.py @@ -14,9 +14,11 @@ def __init__(self): self.run_b = False self.run_t = False self.run_r = False + self.velX = 0 + self.velY = 0 self.inDungeon_img = pygame.transform.scale(pygame.image.load('img/mini_main-char.png'), (self.width, self.height)) self.inDungeon_run = [] - for i in range(7): + for i in range(8): self.inDungeon_run.append(pygame.transform.scale(pygame.image.load('animations/mini_main-char/sprite_'+str(i)+'.png'), (self.width, self.height))) self.rect = self.inDungeon_img.get_rect() @@ -29,46 +31,56 @@ def blit(self, win): if pygame.mouse.get_pressed()[0]: self.attack = True - if not self.attack: - self.speed = 4 - keys = pygame.key.get_pressed() - if keys[pygame.K_a]: - self.run_l = True - if keys[pygame.K_w]: - self.run_t = True - if keys[pygame.K_s]: - self.run_b = True - if keys[pygame.K_d]: - self.run_r = True - if self.run_l and not self.run_r: - if self.animCount > 6: - self.animCount = 0 - self.velX = -self.speed + self.speed = 20 + keys = pygame.key.get_pressed() + if keys[pygame.K_a]: + self.run_l = True + else: + self.run_l = False + if keys[pygame.K_w]: + self.run_t = True + else: + self.run_t = False + if keys[pygame.K_s]: + self.run_b = True + else: + self.run_b = False + if keys[pygame.K_d]: + self.run_r = True + else: + self.run_r = False + if self.run_l or self.run_r: + if self.animCount > 6: + self.animCount = 0 + if self.run_l: + if self.x >= -50: + self.x -= self.speed win.blit(self.inDungeon_run[self.animCount], (self.x, self.y)) + pygame.time.wait(50) self.animCount += 1 - if self.run_t and not self.run_b: - if self.animCount > 6: - self.animCount = 0 - self.velY = -self.speed + elif self.run_r: + if self.x <= 1450: + self.x += self.speed win.blit(self.inDungeon_run[self.animCount], (self.x, self.y)) + pygame.time.wait(50) self.animCount += 1 - if self.run_b and not self.run_t: - if self.animCount > 6: - self.animCount = 0 - self.velY = self.speed + elif self.run_t or self.run_b: + if self.animCount > 6: + self.animCount = 0 + if self.run_t: + if self.y >= -50: + self.y -= self.speed win.blit(self.inDungeon_run[self.animCount], (self.x, self.y)) + pygame.time.wait(50) self.animCount += 1 - if self.run_r and not self.run_l: - if self.animCount > 6: - self.animCount = 0 - self.velX = self.speed + elif self.run_b: + if self.y <= 500: + self.y += self.speed win.blit(self.inDungeon_run[self.animCount], (self.x, self.y)) + pygame.time.wait(50) self.animCount += 1 - else: - win.blit(self.inDungeon_img, (self.x, self.y)) - self.run_l = False - self.run_b = False - self.run_t = False - self.run_r = False - self.x += self.velX - self.y += self.velY \ No newline at end of file + + else: + win.blit(self.inDungeon_img, (self.x, self.y)) + self.x += self.velX + self.y += self.velY diff --git a/test.py b/test.py new file mode 100644 index 0000000..18e872d --- /dev/null +++ b/test.py @@ -0,0 +1,90 @@ +"""Smooth Movement in pygame""" + +# Imports +import pygame, sys + +# Constants +WIDTH, HEIGHT = 400, 400 +TITLE = "Smooth Movement" + +# pygame initialization +pygame.init() +win = pygame.display.set_mode((WIDTH, HEIGHT)) +pygame.display.set_caption(TITLE) +clock = pygame.time.Clock() + + +# Player Class +class Player: + def __init__(self, x, y): + self.x = int(x) + self.y = int(y) + self.rect = pygame.Rect(self.x, self.y, 32, 32) + self.color = (250, 120, 60) + self.velX = 0 + self.velY = 0 + self.left_pressed = False + self.right_pressed = False + self.up_pressed = False + self.down_pressed = False + self.speed = 4 + + def draw(self, win): + pygame.draw.rect(win, self.color, self.rect) + + def update(self): + self.velX = 0 + self.velY = 0 + if self.left_pressed and not self.right_pressed: + self.velX = -self.speed + if self.right_pressed and not self.left_pressed: + self.velX = self.speed + if self.up_pressed and not self.down_pressed: + self.velY = -self.speed + if self.down_pressed and not self.up_pressed: + self.velY = self.speed + + self.x += self.velX + self.y += self.velY + + self.rect = pygame.Rect(int(self.x), int(self.y), 32, 32) + + +# Player Initialization +player = Player(WIDTH / 2, HEIGHT / 2) + +# Main Loop +while True: + + for event in pygame.event.get(): + if event.type == pygame.QUIT: + pygame.quit() + sys.exit() + if event.type == pygame.KEYDOWN: + if event.key == pygame.K_a: + player.left_pressed = True + if event.key == pygame.K_d: + player.right_pressed = True + if event.key == pygame.K_w: + player.up_pressed = True + if event.key == pygame.K_s: + player.down_pressed = True + if event.type == pygame.KEYUP: + if event.key == pygame.K_a: + player.left_pressed = False + if event.key == pygame.K_d: + player.right_pressed = False + if event.key == pygame.K_w: + player.up_pressed = False + if event.key == pygame.K_s: + player.down_pressed = False + + # Draw + win.fill((12, 24, 36)) + player.draw(win) + + # update + player.update() + pygame.display.flip() + + clock.tick(120) \ No newline at end of file