|
|
|
@ -11,14 +11,20 @@ class GameWindow: |
|
|
|
self.cell_size = cell_size |
|
|
|
self.cell_size = cell_size |
|
|
|
self.width = width * cell_size |
|
|
|
self.width = width * cell_size |
|
|
|
self.height = height * cell_size |
|
|
|
self.height = height * cell_size |
|
|
|
self.target_size = (640, 480) |
|
|
|
self.actual_screen_size = (640, 480) |
|
|
|
|
|
|
|
if self.width > self.actual_screen_size[0] or self.height > self.actual_screen_size[1]: |
|
|
|
|
|
|
|
self.target_size = self.actual_screen_size |
|
|
|
|
|
|
|
else: |
|
|
|
|
|
|
|
self.target_size = (self.width, self.height) |
|
|
|
self.w_start_offset = (self.target_size[0] - self.width) // 2 |
|
|
|
self.w_start_offset = (self.target_size[0] - self.width) // 2 |
|
|
|
self.h_start_offset = (self.target_size[1] - self.height) // 2 |
|
|
|
self.h_start_offset = (self.target_size[1] - self.height) // 2 |
|
|
|
self.w_offset = self.w_start_offset |
|
|
|
self.w_offset = self.w_start_offset |
|
|
|
self.h_offset = self.h_start_offset |
|
|
|
self.h_offset = self.h_start_offset |
|
|
|
|
|
|
|
self.max_w_offset = self.target_size[0] - self.width |
|
|
|
|
|
|
|
self.max_h_offset = self.target_size[1] - self.height |
|
|
|
print(f"Screen size: {self.width}x{self.height}") |
|
|
|
print(f"Screen size: {self.width}x{self.height}") |
|
|
|
self.delay = 30 |
|
|
|
self.delay = 30 |
|
|
|
sdl2.ext.init() |
|
|
|
sdl2.ext.init(joystick=True) |
|
|
|
self.window = sdl2.ext.Window(title=title, size=self.target_size,)# flags=sdl2.SDL_WINDOW_FULLSCREEN) |
|
|
|
self.window = sdl2.ext.Window(title=title, size=self.target_size,)# flags=sdl2.SDL_WINDOW_FULLSCREEN) |
|
|
|
self.window.show() |
|
|
|
self.window.show() |
|
|
|
self.renderer = sdl2.ext.Renderer(self.window, flags=sdl2.SDL_RENDERER_ACCELERATED) |
|
|
|
self.renderer = sdl2.ext.Renderer(self.window, flags=sdl2.SDL_RENDERER_ACCELERATED) |
|
|
|
@ -105,8 +111,8 @@ class GameWindow: |
|
|
|
elif event.type == sdl2.SDL_MOUSEMOTION: |
|
|
|
elif event.type == sdl2.SDL_MOUSEMOTION: |
|
|
|
self.scroll_view((event.motion.x//self.cell_size, event.motion.y//self.cell_size)) |
|
|
|
self.scroll_view((event.motion.x//self.cell_size, event.motion.y//self.cell_size)) |
|
|
|
elif event.type == sdl2.SDL_JOYBUTTONDOWN: |
|
|
|
elif event.type == sdl2.SDL_JOYBUTTONDOWN: |
|
|
|
if event.jbutton.button == 0: |
|
|
|
key = sdl2.SDL_JoystickGetButton(event.jbutton.which, event.jbutton.button) |
|
|
|
self.close() |
|
|
|
self.key_callback(key) |
|
|
|
|
|
|
|
|
|
|
|
# Disegna qui gli sprite |
|
|
|
# Disegna qui gli sprite |
|
|
|
self.renderer.present() |
|
|
|
self.renderer.present() |
|
|
|
@ -118,10 +124,16 @@ class GameWindow: |
|
|
|
|
|
|
|
|
|
|
|
def scroll_view(self, pointer): |
|
|
|
def scroll_view(self, pointer): |
|
|
|
x, y = pointer |
|
|
|
x, y = pointer |
|
|
|
|
|
|
|
x = x//2 |
|
|
|
|
|
|
|
y = y//2 |
|
|
|
x = -x * self.cell_size |
|
|
|
x = -x * self.cell_size |
|
|
|
y = -y * self.cell_size |
|
|
|
y = -y * self.cell_size |
|
|
|
|
|
|
|
|
|
|
|
self.w_offset = x //2 |
|
|
|
if not x <= self.max_w_offset + self.cell_size: |
|
|
|
|
|
|
|
self.w_offset = x |
|
|
|
|
|
|
|
else: |
|
|
|
|
|
|
|
self.w_offset = self.max_w_offset |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if -y < self.height-(self.height-self.target_size[1])-self.cell_size: |
|
|
|
if not y < self.max_h_offset: |
|
|
|
self.h_offset = y //2 |
|
|
|
self.h_offset = y |