def main(): #cause I don't want to pass these around global WINDOW, REN, SPRITE_FACTORY, SPRITE_RENDERER, MUSIC SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO) WINDOW = ext.Window("Tetromino", size=(WINDOWWIDTH, WINDOWHEIGHT)) REN = ext.Renderer(WINDOW) WINDOW.show() font_file = sysfont.get_font("freesans", sysfont.STYLE_BOLD) font_manager = ext.FontManager(font_file, size=18) #fontmanager=font_manager will be default_args passed to every sprite creation method SPRITE_FACTORY = ext.SpriteFactory(renderer=REN, fontmanager=font_manager, free=True) SPRITE_RENDERER = SPRITE_FACTORY.create_sprite_render_system(WINDOW) sdlmixer.Mix_Init(sdlmixer.MIX_INIT_OGG) sdlmixer.Mix_OpenAudio(22050, sdlmixer.MIX_DEFAULT_FORMAT, 2, 1024) #BEEP1 = sdlmixer.Mix_LoadWAV(b"beep1.ogg") showTextScreen("Tetromino") while True: if random.randint(0, 1) == 0: MUSIC = sdlmixer.Mix_LoadMUS(b"tetrisb.mid") else: MUSIC = sdlmixer.Mix_LoadMUS(b"tetrisc.mid") sdlmixer.Mix_PlayMusic(MUSIC, -1) runGame() sdlmixer.Mix_HaltMusic() showTextScreen("Game Over")
def test_FontManager_add(self): fm = sdl2ext.FontManager(RESOURCES.get_path("tuffy.ttf")) assert "tuffy" in fm.aliases assert "tuffy" in fm.fonts assert 16 in fm.fonts["tuffy"] assert isinstance(fm.fonts["tuffy"][16].contents, sdlttf.TTF_Font) # Do some metrics tests # NOTE: Ascent & other font metrics changed in FreeType 2.10, so we # test against both < 2.10 and >= 2.10 values font = fm.fonts["tuffy"][16] assert sdlttf.TTF_FontAscent(font) in [13, 16] fm.add(RESOURCES.get_path("tuffy.ttf"), size=12) font = fm.fonts["tuffy"][12] assert sdlttf.TTF_FontAscent(font) in [10, 12] with pytest.raises(IOError): fm.add("inexistent.ttf") # I don't find a scenario raising a TTF_Error. # self.assertRaises(sdl2ext.SDLError, fm.add, "resources/tuffy.ttf", # size=-1) # Close the font manager and add a new font fm.close() fm.add(RESOURCES.get_path("tuffy.ttf"), size=12) assert isinstance(fm.fonts["tuffy"][12].contents, sdlttf.TTF_Font)
def test_FontManager(self): fm = sdl2ext.FontManager(RESOURCES.get_path("tuffy.ttf"), bg_color=(100, 0, 0)) self.assertIsInstance(fm, sdl2ext.FontManager) self.assertEqual(fm.default_font, "tuffy") self.assertEqual(fm.size, 16) self.assertEqual(fm.bg_color, sdl2ext.Color(100, 0, 0, 0))
def test_FontManager(self): fm = sdl2ext.FontManager(RESOURCES.get_path("tuffy.ttf"), bg_color=(100, 0, 0)) assert isinstance(fm, sdl2ext.FontManager) assert fm.default_font == "tuffy" assert fm.size == 16 assert fm.bg_color == sdl2ext.Color(100, 0, 0, 0)
def test_FontManager_default_font(self): fm = sdl2ext.FontManager(RESOURCES.get_path("tuffy.ttf")) self.assertEqual(fm.default_font, "tuffy") self.assertEqual(fm.size, 16) with self.assertRaises(ValueError): fm.default_font = "Inexistent Alias" fm.add(RESOURCES.get_path("tuffy.copy.ttf"), size=10) fm.default_font = "tuffy.copy" fm.size = 10 self.assertEqual(fm.default_font, "tuffy.copy") self.assertEqual(fm.size, 10) fm.default_font = "tuffy.copy" fm.size = 16 self.assertEqual(fm.default_font, "tuffy.copy") self.assertEqual(fm.size, 16)
def test_FontManager_default_font(self): fm = sdl2ext.FontManager(RESOURCES.get_path("tuffy.ttf")) assert fm.default_font == "tuffy" assert fm.size == 16 with pytest.raises(ValueError): fm.default_font = "Inexistent Alias" fm.add(RESOURCES.get_path("tuffy.copy.ttf"), size=10) fm.default_font = "tuffy.copy" fm.size = 10 assert fm.default_font == "tuffy.copy" assert fm.size == 10 fm.default_font = "tuffy.copy" fm.size = 16 assert fm.default_font == "tuffy.copy" assert fm.size == 16
def test_FontManager_render(self): fm = sdl2ext.FontManager(RESOURCES.get_path("tuffy.ttf")) text_surf = fm.render("text") self.assertIsInstance(text_surf, surface.SDL_Surface) self.assertTrue(text_surf.w > 1) text_surf = fm.render("text", size=10) self.assertIsInstance(text_surf, surface.SDL_Surface) text_surf = fm.render(""" text long enough to have it wrapped at 100 px width.""", size=20, width=100) self.assertIsInstance(text_surf, surface.SDL_Surface) self.assertTrue(text_surf.w > 1) self.assertTrue(text_surf.w == 100) self.assertRaises(KeyError, fm.render, "text", alias="inexistent")
def test_FontManager_render(self): fm = sdl2ext.FontManager(RESOURCES.get_path("tuffy.ttf")) text_surf = fm.render("text") assert isinstance(text_surf, surface.SDL_Surface) assert text_surf.w > 1 text_surf = fm.render("text", size=10) assert isinstance(text_surf, surface.SDL_Surface) text_surf = fm.render(""" text long enough to have it wrapped at 100 px width.""", size=20, width=100) assert isinstance(text_surf, surface.SDL_Surface) assert text_surf.w > 1 assert text_surf.w == 100 with pytest.raises(KeyError): fm.render("text", alias="inexistent")
def test_SpriteFactory_from_text(self): sfactory = sdl2ext.SpriteFactory(sdl2ext.SOFTWARE) fm = sdl2ext.FontManager(RESOURCES.get_path("tuffy.ttf")) # No Fontmanager passed self.assertRaises(KeyError, sfactory.from_text, "Test") # Passing various keywords arguments sprite = sfactory.from_text("Test", fontmanager=fm) self.assertIsInstance(sprite, sdl2ext.SoftwareSprite) sprite = sfactory.from_text("Test", fontmanager=fm, alias="tuffy") self.assertIsInstance(sprite, sdl2ext.SoftwareSprite) # Get text from a texture sprite factory window = sdl2ext.Window("Test", size=(1, 1)) renderer = sdl2ext.Renderer(window) tfactory = sdl2ext.SpriteFactory(sdl2ext.TEXTURE, renderer=renderer, fontmanager=fm) sprite = tfactory.from_text("Test", alias="tuffy") self.assertIsInstance(sprite, sdl2ext.TextureSprite) dogc()
def test_FontManager_add(self): fm = sdl2ext.FontManager(RESOURCES.get_path("tuffy.ttf")) self.assertIn("tuffy", fm.aliases) self.assertIn("tuffy", fm.fonts) self.assertIn(16, fm.fonts["tuffy"]) self.assertIsInstance(fm.fonts["tuffy"][16].contents, sdlttf.TTF_Font) # Do some metrics tests font = fm.fonts["tuffy"][16] self.assertEqual(16, sdlttf.TTF_FontAscent(font)) fm.add(RESOURCES.get_path("tuffy.ttf"), size=12) font = fm.fonts["tuffy"][12] self.assertEqual(12, sdlttf.TTF_FontAscent(font)) self.assertRaises(IOError, fm.add, "inexistent.ttf") # I don't find a scenario raising a TTF_Error. # self.assertRaises(sdl2ext.SDLError, fm.add, "resources/tuffy.ttf", # size=-1) # Close the font manager and add a new font fm.close() fm.add(RESOURCES.get_path("tuffy.ttf"), size=12) self.assertIsInstance(fm.fonts["tuffy"][12].contents, sdlttf.TTF_Font)
def test_FontManager_close(self): fm = sdl2ext.FontManager(RESOURCES.get_path("tuffy.ttf")) fm.add(RESOURCES.get_path("tuffy.ttf"), size=20) fm.add(RESOURCES.get_path("tuffy.ttf"), alias="Foo", size=10) fm.close() self.assertEqual(fm.fonts, {})