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(); }
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)))); }