public DisplayController(GameController game, int width = 128, int height = 32, Font message_font = null) { this.game = game; this.width = width; this.height = height; if (message_font != null) this.message_layer = new TextLayer(1, 1, message_font, FontJustify.Center); // Do two updates to get the "pump primed" ? -- Yeah. for (int i = 0; i < 2; i++) this.update(); this.frame_handlers = new List<DMDFrameHandler>(); this.frame_handlers.Add(new DMDFrameHandler(game.PROC.dmd_draw)); }
public DisplayController(GameController game, int width = 128, int height = 32, Font message_font = null) { this.game = game; this.width = width; this.height = height; if (message_font != null) { this.message_layer = new TextLayer(1, 1, message_font, FontJustify.Center); } // Do two updates to get the "pump primed" ? -- Yeah. for (int i = 0; i < 2; i++) { this.update(); } this.frame_handlers = new List <DMDFrameHandler>(); this.frame_handlers.Add(new DMDFrameHandler(game.PROC.dmd_draw)); }
public void update_layer_4p() { long score; bool is_active_player; Font font; Pair<int, int> pos; FontJustify justify; TextLayer layer; for (int i = 0; i < Game.Players.Count; i++) { score = Game.Players[i].score; is_active_player = (this.Game.ball > 0) && (i == this.Game.current_player_index); font = this.font_for_score(score, is_active_player); pos = this.pos_for_player(i, is_active_player); justify = this.justify_for_player(i); layer = new TextLayer(pos.First, pos.Second, font, justify); layer.set_text(this.format_score(score)); ((ScoreLayer)this.layer).layers.Add(layer); } }
public void update_layer_1p() { long score; if (this.Game.current_player() == null) score = 0; // Small hack to make something show up on startup else score = this.Game.current_player().score; TextLayer layer = new TextLayer(128 / 2, 5, this.font_for_score_single(score), FontJustify.Center); layer.set_text(this.format_score(score)); ((ScoreLayer)this.layer).layers.Add(layer); }
/// <summary> /// Called by the layer to update the score layer for the present game state. /// </summary> public void update_layer() { ((ScoreLayer)this.layer).layers.Clear(); if (this.Game.Players.Count <= 1) this.update_layer_1p(); else this.update_layer_4p(); // Common: add the ball X ... FREE PLAY footer TextLayer common = new TextLayer(128 / 2, 32 - 6, this.font_common, FontJustify.Center); if (this.Game.ball == 0) common.set_text("FREE PLAY"); else common.set_text(String.Format("BALL {0} FREE PLAY", this.Game.ball)); ((ScoreLayer)this.layer).layers.Add(common); }
public override void mode_started() { // Lamp show change_lampshow(); Game.score_display.layer.enabled = false; Animation anim = new Animation().load(@"animations\williams_animated.dmd"); this.williams_logo = new AnimatedLayer(false, true, false, 1, anim.frames.ToArray()); anim = new Animation().load(@"animations\ballcross.dmd"); this.ballcross = new AnimatedLayer(false, true, false, 1, anim.frames.ToArray()); anim = new Animation().load(@"animations\dm_logo.dmd"); this.dm_logo = new AnimatedLayer(false, true, false, 1, anim.frames.ToArray()); anim = new Animation().load(@"animations\pcc_logo.dmd"); this.pcc_logo = new AnimatedLayer(false, true, false, 1, anim.frames.ToArray()); anim = new Animation().load(@"animations\github_fork.dmd"); this.github_logo = new AnimatedLayer(false, true, false, 1, anim.frames.ToArray()); presents_layer = new TextLayer(128 / 2, 0, FontManager.instance.font_named("Font09Bx7.dmd"), FontJustify.Center, true); presents_layer.set_text("PRESENTS"); //testfontlayer_04B37 = new TextLayer(128 / 2, 0, FontManager.instance.font_named("04B-03-7px.dmd"), FontJustify.Center, true); //testfontlayer_07x4 = new TextLayer(128 / 2, 0, FontManager.instance.font_named("Font07x4.dmd"), FontJustify.Center, true); //testfontlayer_07x5 = new TextLayer(128 / 2, 0, FontManager.instance.font_named("Font07x5.dmd"), FontJustify.Center, true); //testfontlayer_09Bx7 = new TextLayer(128 / 2, 0, FontManager.instance.font_named("Font09Bx7.dmd"), FontJustify.Center, true); //testfontlayer_09x5 = new TextLayer(128 / 2, 0, FontManager.instance.font_named("Font09x5.dmd"), FontJustify.Center, true); //testfontlayer_09x6 = new TextLayer(128 / 2, 0, FontManager.instance.font_named("Font09x6.dmd"), FontJustify.Center, true); //testfontlayer_09x7 = new TextLayer(128 / 2, 0, FontManager.instance.font_named("Font09x7.dmd"), FontJustify.Center, true); //testfontlayer_14x10 = new TextLayer(128 / 2, 0, FontManager.instance.font_named("Font14x10.dmd"), FontJustify.Center, true); //testfontlayer_14x8 = new TextLayer(128 / 2, 0, FontManager.instance.font_named("Font14x8.dmd"), FontJustify.Center, true); //testfontlayer_14x9 = new TextLayer(128 / 2, 0, FontManager.instance.font_named("Font14x9.dmd"), FontJustify.Center, true); //testfontlayer_18x10 = new TextLayer(128 / 2, 0, FontManager.instance.font_named("Font18x10.dmd"), FontJustify.Center, true); //testfontlayer_18x11 = new TextLayer(128 / 2, 0, FontManager.instance.font_named("Font18x11.dmd"), FontJustify.Center, true); //testfontlayer_18x12 = new TextLayer(128 / 2, 0, FontManager.instance.font_named("Font18x12.dmd"), FontJustify.Center, true); //testfontlayer_eurostile = new TextLayer(128 / 2, 0, FontManager.instance.font_named("eurostile.dmd"), FontJustify.Center, true); //testfontlayer_04B37.set_text("FONT04B037"); //testfontlayer_07x4.set_text("FONT07x4"); //testfontlayer_07x5.set_text("FONT07x5"); //testfontlayer_09Bx7.set_text("FONT09Bx7"); //testfontlayer_09x5.set_text("FONT09x5"); //testfontlayer_09x6.set_text("FONT09x6"); //testfontlayer_09x7.set_text("FONT09x7"); //testfontlayer_14x10.set_text("FONT14x10"); //testfontlayer_14x8.set_text("FONT14x8"); //testfontlayer_14x9.set_text("FONT14x9"); //testfontlayer_18x10.set_text("FONT18x10"); //testfontlayer_18x11.set_text("FONT18x11"); //testfontlayer_18x12.set_text("FONT18x12"); //testfontlayer_eurostile.set_text("Eurostile 123"); MarkupGenerator gen = new MarkupGenerator(); gen.font_plain = FontManager.instance.font_named("Font09x7.dmd"); gen.font_bold = FontManager.instance.font_named("Font09Bx7.dmd"); Frame credits_frame = gen.frame_for_markup(@" [CREDITS] [Game Rules and Coding] [Jimmy Lipham] [Special Thanks] [Gerry Stellenberg] [Adam Preble]"); this.credits_layer = new PanningLayer(128, 32, credits_frame, new Pair<int, int>(0, 0), new Pair<int, int>(0, 1), false); this.credits_layer.composite_op = DMDBlendMode.DMDBlendModeCopy; List<Pair<int, Layer>> script = new List<Pair<int, Layer>>(); script.Add(new Pair<int, Layer>(7, williams_logo)); script.Add(new Pair<int, Layer>(4, presents_layer)); script.Add(new Pair<int, Layer>(10, dm_logo)); script.Add(new Pair<int, Layer>(1, ballcross)); script.Add(new Pair<int, Layer>(5, pcc_logo)); script.Add(new Pair<int, Layer>(5, github_logo)); //script.Add(new Pair<int, Layer>(5, testfontlayer_eurostile)); //script.Add(new Pair<int, Layer>(5, testfontlayer_04B37)); //script.Add(new Pair<int, Layer>(5, testfontlayer_07x4)); //script.Add(new Pair<int, Layer>(5, testfontlayer_07x5)); //script.Add(new Pair<int, Layer>(5, testfontlayer_09Bx7)); //script.Add(new Pair<int, Layer>(5, testfontlayer_09x5)); //script.Add(new Pair<int, Layer>(5, testfontlayer_09x6)); //script.Add(new Pair<int, Layer>(5, testfontlayer_09x7)); //script.Add(new Pair<int, Layer>(5, testfontlayer_14x10)); //script.Add(new Pair<int, Layer>(5, testfontlayer_14x8)); //script.Add(new Pair<int, Layer>(5, testfontlayer_14x9)); //script.Add(new Pair<int, Layer>(5, testfontlayer_18x10)); //script.Add(new Pair<int, Layer>(5, testfontlayer_18x11)); //script.Add(new Pair<int, Layer>(5, testfontlayer_18x12)); //script.Add(new Pair<int,Layer>(30, credits_layer)); this.layer = new ScriptedLayer(128, 32, script); // Blinky start button Game.Lamps["startButton"].Schedule(0x00ff00ff, 0, false); }