Aggiorna la gestione della finestra di gioco, modifica la dimensione e il ritardo di rendering, e cambia il suono della bomba
This commit is contained in:
+19
-7
@@ -11,14 +11,20 @@ class GameWindow:
|
||||
self.cell_size = cell_size
|
||||
self.width = width * 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.h_start_offset = (self.target_size[1] - self.height) // 2
|
||||
self.w_offset = self.w_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}")
|
||||
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.show()
|
||||
self.renderer = sdl2.ext.Renderer(self.window, flags=sdl2.SDL_RENDERER_ACCELERATED)
|
||||
@@ -105,8 +111,8 @@ class GameWindow:
|
||||
elif event.type == sdl2.SDL_MOUSEMOTION:
|
||||
self.scroll_view((event.motion.x//self.cell_size, event.motion.y//self.cell_size))
|
||||
elif event.type == sdl2.SDL_JOYBUTTONDOWN:
|
||||
if event.jbutton.button == 0:
|
||||
self.close()
|
||||
key = sdl2.SDL_JoystickGetButton(event.jbutton.which, event.jbutton.button)
|
||||
self.key_callback(key)
|
||||
|
||||
# Disegna qui gli sprite
|
||||
self.renderer.present()
|
||||
@@ -118,10 +124,16 @@ class GameWindow:
|
||||
|
||||
def scroll_view(self, pointer):
|
||||
x, y = pointer
|
||||
x = x//2
|
||||
y = y//2
|
||||
x = -x * 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:
|
||||
self.h_offset = y //2
|
||||
|
||||
if not y < self.max_h_offset:
|
||||
self.h_offset = y
|
||||
@@ -99,7 +99,7 @@ class MiceMaze:
|
||||
elif key == "Right":
|
||||
self.scroll_cursor(x=1)
|
||||
elif key == "Space":
|
||||
self.play_sound("BOMB.wav")
|
||||
self.play_sound("PUTDOWN.WAV")
|
||||
self.spawn_bomb(self.pointer)
|
||||
|
||||
def scroll_cursor(self, x=0, y=0):
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ import sdl2.ext
|
||||
class Main:
|
||||
def __init__(self):
|
||||
sdl2.ext.init()
|
||||
self.size = (640, 480)
|
||||
self.size = (800, 600)
|
||||
self.window = sdl2.ext.Window("PySDL2 Demo", size=self.size)
|
||||
self.window.show()
|
||||
self.renderer = sdl2.ext.Renderer(self.window)
|
||||
|
||||
Reference in New Issue
Block a user