60 lines
2.0 KiB
Python
60 lines
2.0 KiB
Python
import pygame
|
|
import numpy as np
|
|
from scripts.tiles import Tilemap
|
|
from scripts.entities import Entity
|
|
from scripts.utils import load_image, load_images, to_isometric_pixel
|
|
from scripts.camera import Camera
|
|
|
|
# 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()
|
|
|
|
self.player = Entity(self, 'player', (64., 64.), (28, 42))
|
|
self.assets = {
|
|
'player' : load_image('entities/player.png'),
|
|
#'grass' : load_images('tiles/grass/'),
|
|
#'stone' : load_images('tiles/stone/')
|
|
'iso' : load_images('tiles/iso/')
|
|
}
|
|
self.tilemap = Tilemap(self, (64,32), 'map_1.csv')
|
|
self.camera = Camera(self)
|
|
def run(self):
|
|
self.status = True
|
|
while self.status:
|
|
self.display.fill('white')
|
|
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]:
|
|
delta[0] -= 5
|
|
if keys[pygame.K_RIGHT]:
|
|
delta[0] += 5
|
|
if keys[pygame.K_UP]:
|
|
delta[1] -= 5
|
|
if keys[pygame.K_DOWN]:
|
|
delta[1] += 5
|
|
#print(self.tilemap.physics_rects_around(self.player.pos))
|
|
print(self.player.pos)
|
|
self.camera.update()
|
|
self.player.update(self.tilemap, delta)
|
|
self.tilemap.render(self.display, offset = self.camera.scroll)
|
|
self.player.render(self.display, offset = self.camera.scroll)
|
|
self.screen.blit(pygame.transform.scale(self.display,self.screen.get_size()), (0,0))
|
|
pygame.display.update()
|
|
self.clock.tick(60)
|
|
pygame.quit()
|
|
|
|
Game().run()
|