Exemplo n.º 1
0
        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);
                }
            }
        }
Exemplo n.º 2
0
        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);