Skip to content
This repository was archived by the owner on Mar 8, 2022. It is now read-only.

Commit bddd3b8

Browse files
author
Ethan
committed
Create window and client
1 parent ea3cccd commit bddd3b8

File tree

4 files changed

+61
-0
lines changed

4 files changed

+61
-0
lines changed

snek.pyw

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import pygame as pg
2+
3+
from snek import Client
4+
5+
if __name__ == "__main__":
6+
pg.init()
7+
client = Client()
8+
client.run()

snek/__init__.py

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
WINDOW_WIDTH = 1280
2+
WINDOW_HEIGHT = 720
3+
WINDOW_CAPTION = "Snek"
4+
5+
from .window import Window
6+
from .client import Client

snek/client.py

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import sys
2+
3+
import pygame as pg
4+
from pygame.locals import *
5+
6+
import snek
7+
8+
9+
class Client:
10+
__slots__ = ("clock", "wnd", "scene", "_paused")
11+
12+
def __init__(self):
13+
self.clock = pg.time.Clock()
14+
self.wnd = snek.Window(snek.WINDOW_WIDTH, snek.WINDOW_HEIGHT, snek.WINDOW_CAPTION)
15+
16+
def run(self):
17+
while True:
18+
frame_delta = self.clock.tick() * 1e-3
19+
20+
if frame_delta < 0.1:
21+
self.wnd.clear()
22+
pg.display.flip()
23+
24+
def stop(self):
25+
pg.quit()
26+
sys.exit()

snek/window.py

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import pygame as pg
2+
3+
4+
class Window:
5+
__slots__ = ("w", "h", "surface")
6+
7+
def __init__(self, width, height, caption="Pygame Tutorial"):
8+
self.w = width
9+
self.h = height
10+
self.surface = pg.display.set_mode((width, height), flags=pg.HWSURFACE | pg.DOUBLEBUF)
11+
pg.display.set_caption(caption)
12+
13+
@property
14+
def size(self):
15+
return (self.w, self.h)
16+
17+
def blit(self, sprite):
18+
self.surface.blit(sprite.surface, sprite.position)
19+
20+
def clear(self):
21+
self.surface.fill((0, 0, 0))

0 commit comments

Comments
 (0)