コード例 #1
0
        protected override async void Init()
        {
            InitialRotation = new Quaternion(180, 270, -30);
            var cache = Application.ResourceCache;
            var node  = Node;
            var model = node.CreateComponent <StaticModel>();

            model.Model = cache.GetModel(Assets.Models.Enemy1);
            model.SetMaterial(cache.GetMaterial(Assets.Materials.Enemy1).Clone());

            SetText("here is here is here is Xamonkey");
            TextNode.Translate(new Vector3(0, -20f, 0));
            TextNode.Yaw(180);

            node.SetScale(RandomHelper.NextRandom(0.1f, 0.12f));

            // load weapons:
            // node.AddComponent(new XamarinCube());


            node.Position = new Vector3(3 * (RandomHelper.NextBoolRandom() ? 1 : -1), RandomHelper.NextRandom(0, 2), 0);

            await Node.RunActionsAsync(new MoveTo(1f, new Vector3(RandomHelper.NextRandom(-2, 2), RandomHelper.NextRandom(2, 4), 0)));

            MoveRandomly(minX: -2f, maxX: 2f, minY: -1f, maxY: 1f, duration: 5f);
            //StartShooting();
        }
コード例 #2
0
        protected override async void Init()
        {
            var cache = Application.ResourceCache;
            var node  = Node;
            var model = node.CreateComponent <StaticModel>();

            model.Model = cache.GetModel(Assets.Models.Player);
            var material = cache.GetMaterial(Assets.Materials.Player).Clone();

            model.SetMaterial(material);

            SetText("第 1 题");

            TextNode.Translate(new Vector3(0, 5f, 0));
            TextNode.Yaw(180);

            node.SetScale(0.35f);
            node.Position = new Vector3(0f, -6f, 0f);
            node.Rotation = new Quaternion(0, 0, 180);

            //TODO: rotor should be defined in the model + animation
            _rotor = node.CreateChild();
            var rotorModel = _rotor.CreateComponent <Box>();

            rotorModel.Color = Color.White;
            _rotor.Scale     = new Vector3(0.1f, 1.5f, 0.1f);
            _rotor.Position  = new Vector3(0, -0.15f, -1.5f);
            _rotor.RunActions(new RepeatForever(new RotateBy(1f, 0, 0, 360f * 4)));             //RPM

            // Load weapons
            //node.AddComponent(new MachineGun());
            node.AddComponent(new Missile());

            await node.RunActionsAsync(new EaseOut(new MoveBy(0.5f, new Vector3(0, 3, 0)), 2));

            MoveRandomly();

            // Do an alleron roll each 5 seconds
            Node.RunActions(new RepeatForever(new DelayTime(5),
                                              new EaseBackInOut(new RotateBy(1f, 0f, 0f, 360))));
        }