py_yugi_clone/game.py

67 lines
2.4 KiB
Python
Raw Normal View History

2024-07-10 20:08:18 +02:00
import pygame
import numpy as np
from scripts.tiles import Tilemap
2024-07-13 15:29:03 +02:00
from scripts.entities import Entity, Partner, GroupEntities
2024-07-12 22:04:31 +02:00
from scripts.utils import load_image, load_images, to_isometric_pixel
from scripts.camera import Camera
2024-07-10 20:08:18 +02:00
# SETTINGS
WIDTH = 1280
HEIGHT = 720
TITLE = 'YuGiOh Tag Force Clone'
class Game:
def __init__(self):
pygame.init()
self.screen = pygame.display.set_mode((WIDTH, HEIGHT))
self.display = pygame.Surface((WIDTH//2, HEIGHT//2))
pygame.display.set_caption(TITLE)
self.clock = pygame.time.Clock()
2024-07-12 22:04:31 +02:00
self.player = Entity(self, 'player', (64., 64.), (28, 42))
2024-07-13 15:29:03 +02:00
self.partner = Partner(self, (80.,80.), (28,42))
self.entities = GroupEntities(self, [self.player, self.partner])
2024-07-10 20:08:18 +02:00
self.assets = {
'player' : load_image('entities/player.png'),
2024-07-13 15:29:03 +02:00
'partner': load_image('entities/partner.png'),
2024-07-12 16:56:47 +02:00
#'grass' : load_images('tiles/grass/'),
#'stone' : load_images('tiles/stone/')
'iso' : load_images('tiles/iso/')
2024-07-10 20:08:18 +02:00
}
2024-07-12 22:04:31 +02:00
self.tilemap = Tilemap(self, (64,32), 'map_1.csv')
self.camera = Camera(self)
2024-07-13 15:29:03 +02:00
def render(self):
self.display.fill('white')
self.tilemap.render(self.display, offset = self.camera.scroll)
self.entities.render(self.display, offset = self.camera.scroll)
#self.player.render(self.display, offset = self.camera.scroll)
#self.partner.render(self.display, offset = self.camera.scroll)
self.screen.blit(pygame.transform.scale(self.display,self.screen.get_size()), (0,0))
pygame.display.update()
2024-07-10 20:08:18 +02:00
def run(self):
self.status = True
while self.status:
delta = np.array([0.0,0.0])
for event in pygame.event.get():
if event.type == pygame.QUIT:
self.status = False
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
2024-07-13 15:29:03 +02:00
delta += np.array([-5,5])
2024-07-10 20:08:18 +02:00
if keys[pygame.K_RIGHT]:
2024-07-13 15:29:03 +02:00
delta += np.array([5,-5])
2024-07-10 20:08:18 +02:00
if keys[pygame.K_UP]:
2024-07-13 15:29:03 +02:00
delta += np.array([-5,-5])
2024-07-10 20:08:18 +02:00
if keys[pygame.K_DOWN]:
2024-07-13 15:29:03 +02:00
delta += np.array([5,5])
2024-07-12 22:04:31 +02:00
self.camera.update()
self.player.update(self.tilemap, delta)
2024-07-13 15:29:03 +02:00
self.partner.update()
self.render()
2024-07-10 20:08:18 +02:00
self.clock.tick(60)
pygame.quit()
Game().run()