public static void ToTMX(TranslationModule tp, string targetDir) { var tmx = new tmx(); var tus = new List <tu>(); foreach (var key in tp.ByKey) { var tu = new tu(); tu.tuid = key.Key; var tuvs = new List <tuv>(); //tuvs.Add(new tuv() { lang = tp.masterLanguage.ToUpper(), lang1 = tp.masterLanguage.ToUpper(), seg = new seg() { Text = new string[] { kvp.Value } } }); /* * foreach (var l in tp.Languages) * { * if (tp.Dicts.ContainsKey(l) && tp.Dicts[l].ContainsKey(key)) * tuvs.Add(new tuv() { lang = l.ToUpper(), lang1 = l.ToUpper(), seg = new seg() { Text = new string[] { tp.Dicts[l][key] } } }); * } */ foreach (var seg in key) { tuvs.Add(new tuv() { lang = seg.Language.ToUpper(), lang1 = seg.Language.ToUpper(), seg = new seg() { Text = new string[] { seg.Text } } }); } tu.tuv = tuvs.ToArray(); tus.Add(tu); } tmx.body = tus.ToArray(); tmx.header = new header() { srclang = "*all*", creationtool = "iLuccaTranslationTool", segtype = headerSegtype.phrase }; var extraTypes = new Type[] { typeof(tu), typeof(tuv), typeof(seg) }; XmlSerializer xs = new XmlSerializer(typeof(tmx), null, extraTypes, new XmlRootAttribute("tmx"), null); //specify encoding to add BOM using (var sw = new StreamWriter(targetDir + @"\" + tp.Name + ".tmx", false, new UTF8Encoding(false))) { XmlWriterSettings settings = new XmlWriterSettings(); settings.Indent = false; settings.NewLineHandling = NewLineHandling.None; //xs.Serialize(sw, tmx); using (XmlWriter writer = XmlWriter.Create(sw, settings)) { xs.Serialize(writer, tmx); //_serializer.Serialize(o, writer); } } }
static void Main(string[] args) // first called method at start { //intialize game Console.CursorVisible = false; Console.Title = "Runner"; const int WINDOW_HEIGHT = 30; const int WINDOW_WIDTH = 70; Console.BackgroundColor = ConsoleColor.Black; // only functionable option... //unfortunately I did not managed to get a working background image, this code below used to work in previous assignments... //Texture2d background; declare //... //background = Content.Load<Texture2D>("cityBackground"); initialize bool isGamePlay = true; List <tu> TubeList = new List <tu>(); Random randomGenerator = new Random(); int score = 0; int t = 0; tu sTube = new tu(); sTube.x = 0; sTube.y = 27; int l = WINDOW_WIDTH - 20; //initialize scene Console.BufferHeight = Console.WindowHeight = WINDOW_HEIGHT; Console.BufferWidth = Console.WindowWidth = WINDOW_WIDTH; Console.Clear(); //initialize Player Player runner; runner.x = 15; runner.y = 24; runner.symbol = 'R'; runner.color = ConsoleColor.Yellow; //game loop while (isGamePlay) { // Update logic if (t % 20 == 0) { tu newTube = new tu(); newTube.x = WINDOW_WIDTH - 10; newTube.y = randomGenerator.Next(24, 27); TubeList.Add(newTube); } if (runner.y < WINDOW_HEIGHT - 1) { Globals.fall = true; if (TubeList.Count >= 2) { for (int i = 0; i < 2; i++) { if (runner.y + 1 == TubeList[i].y && runner.x + 1 >= TubeList[i].x && runner.x + 1 <= TubeList[i].x + 10) { Globals.fall = false;// player is on platform score = score + 1; } } } if (Globals.fall) { runner.y += 1; } } //damage, gameover & restart else { Globals.lives = Globals.lives - 1; runner.x = 15; runner.y = 10; if (Globals.lives == 0) { PrintString(30, 12, "*Game Over*", ConsoleColor.Red); PrintString(24, 14, "Press any key to restart", ConsoleColor.Yellow); score = 0; Globals.lives = 3; runner.x = 15; runner.y = 10; Console.ReadKey(); } } if (l > 10) { if (runner.y == sTube.y) { runner.y = sTube.y - 1; } } //spacebar to jump if (Console.KeyAvailable) { ConsoleKeyInfo keyPressed = Console.ReadKey(true); while (Console.KeyAvailable) { Console.ReadKey(true); } if (keyPressed.Key == ConsoleKey.Spacebar) { if (runner.y > 0 || runner.y < -5) { runner.y = runner.y - 5; runner.x = runner.x + 1; } if (runner.y >= WINDOW_HEIGHT / 2) { runner.y = WINDOW_HEIGHT / 2; } if (runner.y <= WINDOW_HEIGHT / 2) { runner.y = WINDOW_HEIGHT / 2; } } } //Update Tube List <tu> newList = new List <tu>(); for (int i = 0; i < TubeList.Count; i++) { tu oldTube = TubeList[i]; tu newTube = new tu(); newTube.x = oldTube.x - 1; newTube.y = oldTube.y; if (newTube.x >= 1) { newList.Add(newTube); } } TubeList = newList; t++; l--; //draw runner Console.Clear(); PrintCharcter(runner.x, runner.y, runner.symbol, runner.color); //display text PrintString(2, 1, "Lives: " + Globals.lives, ConsoleColor.Yellow); PrintString(WINDOW_WIDTH / 2 - 5, 1, "Score: " + score, ConsoleColor.Yellow); PrintString(47, 1, "Press spacebar to jump", ConsoleColor.Yellow); //draw white dotted line under scores for (int i = 1; i < WINDOW_WIDTH - 1; i++) { Print(i, 3, '-', ConsoleColor.Red); } //draw spikey bottom line at floor for (int i = 1; i < WINDOW_WIDTH - 1; i++) { Print(i, 29, '^', ConsoleColor.Red); } //draw tube platforms for (int z = 0; z < TubeList.Count; z++) { PrintTube(TubeList[z].x, TubeList[z].y, 10, "::::::::::", ConsoleColor.Red); PrintTube(TubeList[z].x, TubeList[z].y + 1, 10, "||||||||||", ConsoleColor.Red); PrintTube(TubeList[z].x, TubeList[z].y + 2, 10, "||||||||||", ConsoleColor.Red); PrintTube(TubeList[z].x, TubeList[z].y + 3, 10, "::::::::::", ConsoleColor.Red); } Thread.Sleep(20); //game speed delay } }
CreateTimeValues(tu[i], start, end, 1, dates, labels);