def init(screen, old_scene): if config.useInternet: sc.setPresenter(presenter) browser = BrowserFrame(screen, upBar, downBar, config) browser.setPresenter(presenter) medialib = MedialibFrame(screen, upBar, downBar, config) medialib.setPresenter(presenter) playlists = PlaylistsFrame(screen, upBar, downBar, config) playlists.setPresenter(presenter) equalizer = EqualizerFrame(screen, upBar, downBar, config) equalizer.setPresenter(presenter) viz = VisualizationFrame(screen, upBar, downBar, config) viz.setPresenter(presenter) clock = ClockFrame(screen, upBar, downBar, config) clock.setPresenter(presenter) if config.useInternet: artistinfo = ArtistInfoFrame(screen, upBar, downBar, config) artistinfo.setPresenter(presenter) if config.useInternet: lyrics = LyricsFrame(screen, upBar, downBar, config) lyrics.setPresenter(presenter) search = SearchFrame(screen, upBar, downBar, config) search.setPresenter(presenter) mainplaylist = MainPlaylistFrame(screen, upBar, downBar, config) mainplaylist.setPresenter(presenter) presenter.setBrowser(browser) presenter.setMainPlaylist(mainplaylist) presenter.setPlaylists(playlists) presenter.setEqualizer(equalizer) presenter.setClock(clock) presenter.setUpBar(upBar) presenter.setDownBar(downBar) presenter.setVisualization(viz) presenter.setMedialib(medialib) if config.useInternet: presenter.setArtistInfo(artistinfo) presenter.setLyrics(lyrics) presenter.setSearch(search) player.setPresenter(presenter) presenter.run() screens = [Scene([mainplaylist], -1, name="MainPlaylist"), Scene([browser], -1, name="Browser"), Scene([medialib], -1, name="Medialib"), Scene([playlists], -1, name="Playlists"), Scene([equalizer], -1, name="Equalizer"), Scene([viz], -1, name="Visualizer")] if config.useInternet: screens.append(Scene([artistinfo], -1, name="ArtistInfo")) screens.append(Scene([lyrics], -1, name="Lyrics")) screens.append(Scene([clock], -1, name="Clock")) screens.append(Scene([search], -1, name="Search")) screen.play(screens, stop_on_resize=True, start_scene=old_scene)
def displayVerbose(screen, sel: selectors.DefaultSelector, data, poll): from asciimatics.screen import Screen, StopApplication, NextScene, ResizeScreenError from asciimatics.scene import Scene import asciimatics.widgets as Widgets from asciimatics.effects import Matrix, _Trail, randint from time import time # It was too good to not include class _BioTrail(_Trail): def update(self, reseed): chars = ['A', 'G', 'C', 'T'] if self._clear: for i in range(0, 3): self._screen.print_at(" ", self._x, self._screen.start_line + self._y + i) self._maybe_reseed(reseed) else: for i in range(0, 3): self._screen.print_at(chars[randint(0,3)], self._x, self._screen.start_line + self._y + i, Screen.COLOUR_GREEN) for i in range(4, 6): self._screen.print_at(chars[randint(0,3)], self._x, self._screen.start_line + self._y + i, Screen.COLOUR_GREEN, Screen.A_BOLD) self._maybe_reseed(reseed) class BioMatrix(Matrix): def reset(self): self._chars = [_BioTrail(self._screen, x) for x in range(self._screen.width)] Widgets.Frame.palette['section_header'] = (Screen.COLOUR_GREEN, Screen.A_UNDERLINE, Screen.COLOUR_BLUE) window = Widgets.Frame(screen, 30, 200, title="ProDuSe V2.0", data=data) scene = Scene([BioMatrix(screen), window]) layout = Widgets.Layout([1]) window.add_layout(layout) outputFile = Widgets.Text('Output', 'output') outputFile.disabled = True layout.add_widget(outputFile) # Trim label = Widgets.Label("Trim:") label.custom_colour = 'section_header' layout.add_widget(label) trim = Widgets.TextBox(1, name='trim') trim.disabled = True layout.add_widget(trim) layout.add_widget(Widgets.Divider(False)) #BWA label = Widgets.Label("BWA:") label.custom_colour = 'section_header' layout.add_widget(label) box = Widgets.TextBox(len(data['bwa']), name='bwa') box.disabled = True layout.add_widget(box) layout.add_widget(Widgets.Divider(False)) # Clip label = Widgets.Label("Clip:") label.custom_colour = 'section_header' layout.add_widget(label) box = Widgets.TextBox(1, name='clip') box.disabled = True layout.add_widget(box) layout.add_widget(Widgets.Divider(False)) # Collapse label = Widgets.Label("Collapse:") label.custom_colour = 'section_header' layout.add_widget(label) box = Widgets.TextBox(1, name='collapse') box.disabled = True layout.add_widget(box) layout.add_widget(Widgets.Divider(False)) window.fix() screen.set_scenes([scene]) screen.draw_next_frame() lastTime = time() while poll(): for key, mask in sel.select(0.5): key.data.pop(0) key.data.append(stripDecorators.sub(lambda m: ' ' if m.group(0) == '\t' else '', key.fileobj.readline().decode())) if time() - lastTime > 1/20: # Dump output until a reasonable amount of time has passed to avoid the buffer filling and slowing down everything if screen.has_resized(): raise ResizeScreenError('') window.data = data screen.force_update() screen.draw_next_frame() lastTime = time() raise StopApplication('')
def demo(screen): effects = [ RandomNoise(screen, signal=Rainbow(screen, FigletText("ASCIIMATICS"))) ] screen.play([Scene(effects, -1)], stop_on_resize=True)
def demo(screen): scenes = [] effects = [ RandomNoise(screen, signal=Rainbow(screen, FigletText("ASCIIMATICS"))), Print(screen, Fire(screen.height, 80, "*" * 70, 0.8, 60, screen.colours, bg=screen.colours >= 256), 0, speed=1, transparent=False), Print(screen, FigletText("Help!", "banner3"), (screen.height - 4) // 2, colour=Screen.COLOUR_BLACK, speed=1, stop_frame=30), Print(screen, FigletText("I'm", "banner3"), (screen.height - 4) // 2, colour=Screen.COLOUR_BLACK, speed=1, start_frame=30, stop_frame=50), Print(screen, FigletText("on", "banner3"), (screen.height - 4) // 2, colour=Screen.COLOUR_BLACK, speed=1, start_frame=50, stop_frame=70), Print(screen, FigletText("Fire!", "banner3"), (screen.height - 4) // 2, colour=Screen.COLOUR_BLACK, speed=1, start_frame=70), ] scenes.append(Scene(effects, 100)) text = Figlet(font="banner", width=200).renderText("ASCIIMATICS") width = max([len(x) for x in text.split("\n")]) effects = [ Print(screen, Fire(screen.height, 80, text, 0.4, 40, screen.colours), 0, speed=1, transparent=False), Print(screen, FigletText("ASCIIMATICS", "banner"), screen.height - 9, x=(screen.width - width) // 2 + 1, colour=Screen.COLOUR_BLACK, bg=Screen.COLOUR_BLACK, speed=1), Print(screen, FigletText("ASCIIMATICS", "banner"), screen.height - 9, colour=Screen.COLOUR_WHITE, bg=Screen.COLOUR_WHITE, speed=1), ] scenes.append(Scene(effects, -1)) screen.play(scenes, stop_on_resize=True)
def singleton(screen, scene, tbapi, serial): scenes = [ Scene([Matrix(screen), MainMenu(screen, settings, tbapi, serial)], -1, name="Main"), ] screen.play(scenes, stop_on_resize=False, start_scene=scene)
def demo(screen, scene): screen.play( [Scene([Background(screen), DemoFrame(screen)], -1)], stop_on_resize=True, start_scene=scene, allow_int=True)
def demo(screen, old_scene): screen.play([Scene([DemoFrame(screen)], -1)], stop_on_resize=True, start_scene=old_scene)
def demo(screen, scene): scenes = [ Scene([ListView(screen, contacts)], -1, name="Main"), ] screen.play(scenes, stop_on_resize=True, start_scene=scene)
def demo(screen): scenes = [] centre = (screen.width // 2, screen.height // 2) podium = (8, 5) # Scene 1. path = Path() path.jump_to(-20, centre[1]) path.move_straight_to(centre[0], centre[1], 10) path.wait(30) path.move_straight_to(podium[0], podium[1], 10) path.wait(100) effects = [ Arrow(screen, path, colour=Screen.COLOUR_GREEN), _speak(screen, "WELCOME TO ASCIIMATICS", centre, 30), _speak(screen, "My name is Aristotle Arrow.", podium, 110), _speak(screen, "I'm here to help you learn ASCIImatics.", podium, 180), ] scenes.append(Scene(effects)) # Scene 2. path = Path() path.jump_to(podium[0], podium[1]) effects = [ Arrow(screen, path, colour=Screen.COLOUR_GREEN), _speak(screen, "Let's start with the Screen...", podium, 10), _speak(screen, "This is your Screen object.", podium, 80), Print(screen, Box(screen.width, screen.height), 0, 0, start_frame=90), _speak(screen, "It lets you play a Scene like this one I'm in.", podium, 150), _speak(screen, "A Scene contains one or more Effects.", podium, 220), _speak(screen, "Like me - I'm a Sprite!", podium, 290), _speak(screen, "Or these Stars.", podium, 360), _speak(screen, "As you can see, the Screen handles them both at once.", podium, 430), _speak(screen, "It can handle as many Effects as you like.", podium, 500), _speak(screen, "Please press <SPACE> now.", podium, 570), Stars(screen, (screen.width + screen.height) // 2, start_frame=360) ] scenes.append(Scene(effects, -1)) # Scene 3. path = Path() path.jump_to(podium[0], podium[1]) effects = [ Arrow(screen, path, colour=Screen.COLOUR_GREEN), _speak(screen, "This is a new Scene.", podium, 10), _speak( screen, "The Screen stops all Effects and clears itself between " "Scenes.", podium, 70), _speak(screen, "That's why you can't see the Stars now.", podium, 130), _speak(screen, "(Though you can override that if you need to.)", podium, 200), _speak(screen, "Please press <SPACE> now.", podium, 270), ] scenes.append(Scene(effects, -1)) # Scene 4. path = Path() path.jump_to(podium[0], podium[1]) effects = [ Arrow(screen, path, colour=Screen.COLOUR_GREEN), _speak(screen, "So, how do you design your animation?", podium, 10), _speak(screen, "1) Decide on your cinematic flow of Scenes.", podium, 80), _speak(screen, "2) Create the Effects in each Scene.", podium, 150), _speak(screen, "3) Pass the Scenes to the Screen to play.", podium, 220), _speak(screen, "It really is that easy!", podium, 290), _speak(screen, "Just look at this sample code.", podium, 360), _speak(screen, "Please press <SPACE> now.", podium, 430), ] scenes.append(Scene(effects, -1)) # Scene 5. path = Path() path.jump_to(podium[0], podium[1]) effects = [ Arrow(screen, path, colour=Screen.COLOUR_GREEN), _speak(screen, "There are various effects you can use. For " "example...", podium, 10), Cycle(screen, FigletText("Colour cycling"), centre[1] - 5, start_frame=100), Cycle(screen, FigletText("using Figlet"), centre[1] + 1, start_frame=100), _speak(screen, "Look in the effects module for more...", podium, 290), _speak(screen, "Please press <SPACE> now.", podium, 360), ] scenes.append(Scene(effects, -1)) # Scene 6. path = Path() path.jump_to(podium[0], podium[1]) curve_path = [] for i in range(0, 11): curve_path.append( (centre[0] + (screen.width / 4 * math.sin(i * math.pi / 5)), centre[1] - (screen.height / 4 * math.cos(i * math.pi / 5)))) path2 = Path() path2.jump_to(centre[0], centre[1] - screen.height // 4) path2.move_round_to(curve_path, 60) effects = [ Arrow(screen, path, colour=Screen.COLOUR_GREEN), _speak(screen, "Sprites (like me) are also an Effect.", podium, 10), _speak(screen, "We take a pre-defined Path to follow.", podium, 80), _speak(screen, "Like this one...", podium, 150), Plot(screen, path2, colour=Screen.COLOUR_BLUE, start_frame=160, stop_frame=300), _speak(screen, "My friend Sam will now follow it...", podium, 320), Sam(screen, copy.copy(path2), start_frame=380), _speak(screen, "Please press <SPACE> now.", podium, 420), ] scenes.append(Scene(effects, -1)) # Scene 7. path = Path() path.jump_to(podium[0], podium[1]) path.wait(60) path.move_straight_to(-5, podium[1], 20) path.wait(300) effects = [ Arrow(screen, path, colour=Screen.COLOUR_GREEN), _speak(screen, "Goodbye!", podium, 10), Cycle(screen, FigletText("THE END!"), centre[1] - 4, start_frame=100), Print(screen, SpeechBubble("Press X to exit"), centre[1] + 6, start_frame=150) ] scenes.append(Scene(effects, 500)) screen.play(scenes, stop_on_resize=True)
def demo(screen): screen.set_title("ASCIIMATICS demo") scenes = [] # First scene: title page effects = [ Print(screen, Rainbow(screen, FigletText("ASCIIMATICS", font="big")), y=screen.height // 4 - 5), Print(screen, FigletText("Particle System"), screen.height // 2 - 3), Print(screen, FigletText("Effects Demo"), screen.height * 3 // 4 - 3), Print(screen, SpeechBubble("Press SPACE to continue..."), screen.height - 3, transparent=False, start_frame=70) ] scenes.append(Scene(effects, -1)) # Next scene: just dissolve the title. effects = [ ShootScreen(screen, screen.width // 2, screen.height // 2, 100), ] scenes.append(Scene(effects, 40, clear=False)) # Next scene: sub-heading. effects = [ DropScreen(screen, 100), Print(screen, Rainbow(screen, FigletText("Explosions", font="doom")), y=screen.height // 2 - 5, stop_frame=30), DropScreen(screen, 100, start_frame=30) ] scenes.append(Scene(effects, 80)) # Next scene: explosions effects = [] for i in range(20): effects.append( Explosion(screen, randint(3, screen.width - 4), randint(1, screen.height - 2), randint(20, 30), start_frame=randint(0, 250))) effects.append( Print(screen, SpeechBubble("Press SPACE to continue..."), screen.height - 6, speed=1, transparent=False, start_frame=100)) scenes.append(Scene(effects, -1)) # Next scene: sub-heading. effects = [ Print(screen, Rainbow(screen, FigletText("Rain", font="doom")), y=screen.height // 2 - 5, stop_frame=30), DropScreen(screen, 100, start_frame=30) ] scenes.append(Scene(effects, 80)) # Next scene: rain storm. effects = [ Rain(screen, 200), Print(screen, SpeechBubble("Press SPACE to continue..."), screen.height - 6, speed=1, transparent=False, start_frame=100) ] scenes.append(Scene(effects, -1)) # Next scene: sub-heading. effects = [ Print(screen, Rainbow(screen, FigletText("Fireworks", font="doom")), y=screen.height // 2 - 5, stop_frame=30), DropScreen(screen, 100, start_frame=30) ] scenes.append(Scene(effects, 80)) # Next scene: fireworks effects = [] for i in range(20): effects.append( StarFirework(screen, randint(3, screen.width - 4), randint(1, screen.height - 2), randint(20, 30), start_frame=randint(0, 250))) effects.append( Print(screen, SpeechBubble("Press SPACE to continue..."), screen.height - 6, speed=1, transparent=False, start_frame=100)) scenes.append(Scene(effects, -1)) screen.play(scenes, stop_on_resize=True)
def animate(screen): scenes = [] banner_text = "QTAP" text = Figlet(font="banner", width=200).renderText(banner_text) width = max([len(x) for x in text.split("\n")]) # top_padding = screen.height - 9 top_padding = (screen.height // 2) - 3 # fire_top_padding = top_padding + 8 max_rng = (screen.width + screen.height) // 2 qrng.set_provider_as_IBMQ('') qrng.set_backend() rng = qrng.get_random_int((max_rng // 3) * 2, max_rng) stars_bg = Stars(screen, rng, pattern="..[T].. ...[H]... ...[Z]... ") effects = [ # Print(screen, # Fire(fire_top_padding, 80, text, 0.4, 30, screen.colours), # 0, # speed=1, # transparent=False), Print(screen, FigletText(banner_text, "banner"), top_padding, x=(screen.width - width) // 2 + 1, colour=Screen.COLOUR_BLACK, bg=Screen.COLOUR_BLACK, speed=1), Print(screen, FigletText(banner_text, "banner"), top_padding, colour=Screen.COLOUR_WHITE, bg=Screen.COLOUR_WHITE, speed=1), stars_bg ] scenes.append(Scene(effects, duration=seconds_to_frame(2))) # # buttons_top_padding = screen.height - (screen.height // 3) # # effects = [ # Print(screen, # FigletText(banner_text, "banner"), # buttons_top_padding, # x=width, # colour=Screen.COLOUR_WHITE, # bg=Screen.COLOUR_WHITE, # speed=1), # Print(screen, # FigletText(banner_text, "banner"), # buttons_top_padding, # x=screen.width - (screen.width // 3), # colour=Screen.COLOUR_WHITE, # bg=Screen.COLOUR_WHITE, # speed=1), # stars_bg # ] # # scenes.append(Scene(effects, -1)) screen.play(scenes, repeat=False, stop_on_resize=True)
def launch(screen): scene = [Scene([MainView(screen)],-1,name="Main"),Scene([AltazView(screen)],-1,name="Altaz"),Scene([BirgerView(screen)],-1,name="Birger"),Scene([FilterWheelView(screen)],-1,name="Filter Wheel"),Scene([KeithleyView(screen)],-1,name="Keithley"),Scene([LaserView(screen)],-1,name="Laser"),Scene([LockinView(screen)],-1,name="Lockin"),Scene([SpectrographView(screen)],-1,name="Spectrograph"),Scene([ShutterView(screen)],-1,name="Shutter")] screen.play(scene)
def run_scene(screen, board, style): scenes = [Scene([GameBoard(screen, board, style)], -1, name="Main")] screen.play(scenes, stop_on_resize=True)
def demo(screen, scene): scenes = [] #scenes.append(Scene([DemoFrame(screen)], -1)) scenes.append(Scene([DemoFrame2(screen)], -1)) screen.play(scenes, stop_on_resize=True, start_scene=scene)
def run_display(screen): scenes = [] AKT_SENDER = "Retro rockt!" # Prepare frame for the presets preset_frame = Frame(screen, 7, 29, can_scroll=False, title="Tastenbelegung", x=0, y=10, reduce_cpu=True) pr_layout = Layout([10, 90], fill_frame=True) preset_frame.add_layout(pr_layout) # Prepare frame for the sender list sender_frame = Frame(screen, 17, 50, can_scroll=False, title="Senderliste", x=30, y=0, reduce_cpu=True) sender_layout0 = Layout([10, 80, 10], fill_frame=True) sender_frame.add_layout(sender_layout0) # Load the json config-file cfg = load_config() # Prepare the layouts, add spaces etc format_sl_layout(sender_layout0) # Nicht mehr nötig nach aktuellem Stand # format_pr_layout(pr_layout) # Create the sender-labels and fill them initially. Return them for # later changing sender_labels = gen_and_add_sender_labels(sender_layout0, parse_sender(cfg, 0)) preset_labels = gen_and_add_preset_labels(pr_layout, parse_presets(cfg)) preset_frame.fix() sender_frame.fix() # Effects are all the stuff which will be shown on the display effects = [ preset_frame, sender_frame, # Print(screen, Box(26, 15, True), x=54, y=0), Print(screen, Box(80, 8, True), x=0, y=17, speed=2), # Clock(screen, 68, 7, 5), Print(screen, ColourImageFile(screen, LOGO, 9, bg=7), x=0, y=0, speed=2), Print(screen, FigletText(asciisierer(AKT_SENDER)), x=1, y=18), Print(screen, BarChart(4, 80, [get_vol], colour=2, char=' ', bg=7, scale=100, axes=BarChart.X_AXIS, intervals=25, labels=True, border=False), x=0, y=26, transparent=False, speed=2) ] # Start displaying scenes.append(Scene(effects, -1)) screen.play(scenes)
def main(screen): scenes = [ Scene([ReposView(screen, model)], name="repoview"), Scene([InfoRepo(screen, model)], name="inforepo"), ] screen.play(scenes)
def _redraw(self): self.display_score.update_scores(self.teams) scene = Scene([self.display_score], clear=True) self.screen.play([scene], repeat=False, stop_on_resize=True)
def _credits(screen): scenes = [] text = Figlet(font="banner", width=200).renderText("ASCIIMATICS") width = max([len(x) for x in text.split("\n")]) effects = [ Print(screen, Fire(screen.height, 80, text, 0.4, 40, screen.colours), 0, speed=1, transparent=False), Print(screen, FigletText("ASCIIMATICS", "banner"), screen.height - 9, x=(screen.width - width) // 2 + 1, colour=Screen.COLOUR_BLACK, bg=Screen.COLOUR_BLACK, speed=1), Print(screen, FigletText("ASCIIMATICS", "banner"), screen.height - 9, colour=Screen.COLOUR_WHITE, bg=Screen.COLOUR_WHITE, speed=1), ] scenes.append(Scene(effects, 100)) effects = [ Matrix(screen, stop_frame=200), Mirage(screen, FigletText("Asciimatics"), screen.height // 2 - 3, Screen.COLOUR_GREEN, start_frame=100, stop_frame=200), Wipe(screen, start_frame=150), Cycle(screen, FigletText("Asciimatics"), screen.height // 2 - 3, start_frame=200) ] scenes.append(Scene(effects, 250, clear=False)) effects = [ BannerText( screen, Rainbow( screen, FigletText("Reliving the 80s in glorious ASCII text...", font='slant')), screen.height // 2 - 3, Screen.COLOUR_GREEN) ] scenes.append(Scene(effects)) effects = [ Mirage(screen, FigletText("Conceived and"), screen.height, Screen.COLOUR_GREEN), Mirage(screen, FigletText("written by:"), screen.height + 8, Screen.COLOUR_GREEN), Mirage(screen, FigletText("Peter Brittain"), screen.height + 16, Screen.COLOUR_GREEN), Scroll(screen, 3) ] scenes.append(Scene(effects, (screen.height + 24) * 3)) effects = [ Mirage(screen, FigletText("With help from:"), screen.height, Screen.COLOUR_GREEN), Mirage(screen, FigletText("Cory Benfield"), screen.height + 8, Screen.COLOUR_GREEN), Mirage(screen, FigletText("Bryce Guinta"), screen.height + 16, Screen.COLOUR_GREEN), Scroll(screen, 3) ] scenes.append(Scene(effects, (screen.height + 24) * 3)) effects = [ Cycle(screen, FigletText("ASCIIMATICS", font='big'), screen.height // 2 - 8, stop_frame=100), Cycle(screen, FigletText("ROCKS!", font='big'), screen.height // 2 + 3, stop_frame=100), Stars(screen, (screen.width + screen.height) // 2, stop_frame=100), DropScreen(screen, 100, start_frame=100) ] scenes.append(Scene(effects, 200)) effects = [ Print(screen, SpeechBubble("Press 'X' to exit."), screen.height // 2 - 1, attr=Screen.A_BOLD) ] scenes.append(Scene(effects, -1)) screen.play(scenes, stop_on_resize=True)
def demo(screen, scene): screen.play([Scene([Map(screen)], -1)], stop_on_resize=True, start_scene=scene)
def singleton_no_device(screen, scene): scenes = [ Scene([NoDevice(screen)], -1, name="Main"), ] screen.play(scenes, stop_on_resize=False, start_scene=scene)
def demo(screen): scenes = [] centre = (screen.width // 2, screen.height // 2) # Title effects = [ BannerText(screen, ColourImageFile(screen, "pacman.png", 16, 0, True), (screen.height - 16) // 2, Screen.COLOUR_WHITE), Print( screen, StaticRenderer(images=[ "A tribute to the classic 80's " "video game by Namco." ]), screen.height - 1) ] scenes.append(Scene(effects, 0)) # Scene 1 - run away, eating dots path = Path() path.jump_to(screen.width + 16, centre[1]) path.move_straight_to(-16, centre[1], (screen.width + 16) // 3) path.wait(100) if screen.colours <= 16: inky = 6 pinky = 5 blinky = 1 clyde = 2 else: inky = 14 pinky = 201 blinky = 9 clyde = 208 effects = [ PacMan(screen, path), Ghost(screen, deepcopy(path), inky, start_frame=40), Ghost(screen, deepcopy(path), pinky, start_frame=60), Ghost(screen, deepcopy(path), blinky, start_frame=80), Ghost(screen, deepcopy(path), clyde, start_frame=100), ] for x in range(5, screen.width, 16): effects.insert( 0, Print(screen, StaticRenderer(images=[dot]), screen.height // 2, x=x, speed=1, stop_frame=4)) scenes.append(Scene(effects, 100 + screen.width)) # Scene 2 - Chase ghosts after a power pill scenes.append(EatingScene(screen)) # Scene 3 - Thanks... effects = [ Print(screen, FigletText("Thank you,"), screen.height // 3 - 3, colour=Screen.COLOUR_RED), Print(screen, StaticRenderer(images=[namco]), screen.height * 2 // 3 - 2, colour=Screen.COLOUR_RED), Print(screen, StaticRenderer(images=["< Press X to exit. >"]), screen.height - 1) ] scenes.append(Scene(effects, 0)) screen.play(scenes, stop_on_resize=True, repeat=False)
def _credits(term): screen = Screen.from_blessed(term) scenes = [] centre = (screen.width // 2, screen.height // 2) curve_path = [] for i in range(0, 11): curve_path.append( (centre[0] + (screen.width / 3 * math.sin(i * math.pi / 5)), centre[1] - (screen.height / 3 * math.cos(i * math.pi / 5)))) path = Path() path.jump_to(-20, centre[1] - screen.height // 3) path.move_straight_to(centre[0], centre[1] - screen.height // 3, 10), path.wait(30) path.move_round_to(curve_path, 80) path.wait(30) path.move_straight_to(7, 4, 10) path.wait(300) effects = [ Sam(screen, path), Print(screen, SpeechBubble("WELCOME TO ASCIIMATICS", "L"), x=centre[0] + 12, y=(centre[1] - screen.height // 3) - 4, colour=Screen.COLOUR_CYAN, clear=True, start_frame=20, stop_frame=50), Print(screen, SpeechBubble("Wheeeeeee!"), y=centre[1], colour=Screen.COLOUR_CYAN, clear=True, start_frame=100, stop_frame=250), Print(screen, SpeechBubble("A world of possibilities awaits you...", "L"), x=18, y=0, colour=Screen.COLOUR_CYAN, clear=True, start_frame=350, stop_frame=400), Print(screen, ImageFile("globe.gif"), 0, start_frame=400), ] scenes.append(Scene(effects, 600)) effects = [ Matrix(screen, stop_frame=200), Mirage(screen, FigletText("Asciimatics"), screen.height // 2 - 3, Screen.COLOUR_GREEN, start_frame=100, stop_frame=200), Wipe(screen, start_frame=150), Cycle(screen, FigletText("Asciimatics"), screen.height // 2 - 3, start_frame=200) ] scenes.append(Scene(effects, 250, clear=False)) effects = [ BannerText( screen, Rainbow( screen, FigletText("Reliving the 80s in glorious ASCII text...", font='slant')), screen.height // 2 - 3, Screen.COLOUR_GREEN) ] scenes.append(Scene(effects)) effects = [ Mirage(screen, FigletText("Conceived and"), screen.height, Screen.COLOUR_GREEN), Mirage(screen, FigletText("written by:"), screen.height + 8, Screen.COLOUR_GREEN), Mirage(screen, FigletText("Peter Brittain"), screen.height + 16, Screen.COLOUR_GREEN), Scroll(screen, 3) ] scenes.append(Scene(effects, (screen.height + 24) * 3)) effects = [ Cycle(screen, FigletText("ASCIIMATICS", font='big'), screen.height // 2 - 8), Cycle(screen, FigletText("ROCKS!", font='big'), screen.height // 2 + 3), Stars(screen, (screen.height + screen.width) // 2) ] scenes.append(Scene(effects, 200)) screen.play(scenes, stop_on_resize=True)
def _credits(screen): scenes = [] text = Figlet(font="banner", width=200).renderText("ASCIIMATICS") width = max([len(x) for x in text.split("\n")]) effects = [ Print(screen, Fire(screen.height, 80, text, 0.4, 40, screen.colours), 0, speed=1, transparent=False), Print(screen, FigletText("ASCIIMATICS", "banner"), screen.height - 9, x=(screen.width - width) // 2 + 1, colour=Screen.COLOUR_BLACK, bg=Screen.COLOUR_BLACK, speed=1), Print(screen, FigletText("ASCIIMATICS", "banner"), screen.height - 9, colour=Screen.COLOUR_WHITE, bg=Screen.COLOUR_WHITE, speed=1), ] scenes.append(Scene(effects, 100)) effects = [ Matrix(screen, stop_frame=200), Mirage(screen, FigletText("Asciimatics"), screen.height // 2 - 3, Screen.COLOUR_GREEN, start_frame=100, stop_frame=200), Wipe(screen, start_frame=150), Cycle(screen, FigletText("Asciimatics"), screen.height // 2 - 3, start_frame=200) ] scenes.append(Scene(effects, 250, clear=False)) effects = [ BannerText( screen, Rainbow( screen, FigletText("Reliving the 80s in glorious ASCII text...", font='slant')), screen.height // 2 - 3, Screen.COLOUR_GREEN) ] scenes.append(Scene(effects)) effects = [ Scroll(screen, 3), Mirage(screen, FigletText("Conceived and"), screen.height, Screen.COLOUR_GREEN), Mirage(screen, FigletText("written by:"), screen.height + 8, Screen.COLOUR_GREEN), Mirage(screen, FigletText("Peter Brittain"), screen.height + 16, Screen.COLOUR_GREEN) ] scenes.append(Scene(effects, (screen.height + 24) * 3)) colours = [ Screen.COLOUR_RED, Screen.COLOUR_GREEN, ] contributors = [ "Cory Benfield", "Bryce Guinta", "Aman Orazaev", "Daniel Kerr", "Dylan Janeke", "ianadeem", "Scott Mudge", "Luke Murphy", "mronkain", "Dougal Sutherland", "Kirtan Sakariya", "Jesse Lieberg", "Erik Doffagne", "Noah Ginsburg", "Davidy22", "Christopher Trudeau", "Beniamin Kalinowski" ] effects = [ Scroll(screen, 3), Mirage( screen, FigletText("With help from:"), screen.height, Screen.COLOUR_GREEN, ) ] pos = 8 for i, name in enumerate(contributors): effects.append( Mirage( screen, FigletText(name), screen.height + pos, colours[i % len(colours)], )) pos += 8 scenes.append(Scene(effects, (screen.height + pos) * 3)) effects = [ Cycle(screen, FigletText("ASCIIMATICS", font='big'), screen.height // 2 - 8, stop_frame=100), Cycle(screen, FigletText("ROCKS!", font='big'), screen.height // 2 + 3, stop_frame=100), Stars(screen, (screen.width + screen.height) // 2, stop_frame=100), DropScreen(screen, 200, start_frame=100) ] scenes.append(Scene(effects, 300)) effects = [ Print(screen, SpeechBubble("Press 'X' to exit."), screen.height // 2 - 1, attr=Screen.A_BOLD) ] scenes.append(Scene(effects, -1)) screen.play(scenes, stop_on_resize=True)