public override void Draw(SpriteBatch aSpriteBatch, Vector2 aGridOffset, int aGridHeight, float aRaisingOffset)
        {
            SetAngryTile();
            // if adjacent is angry & not dead & has my index, it's my friend
            // if contaminated then use lonley sprite

            Vector2 position = GetScreenPosition(aGridOffset, aGridHeight, aRaisingOffset);

            position.Y -= myYOffset * myTileSetSprite.GetSize().Y;

            if (myIsContaminated)
            {
                myFrozenSprite.SetPosition(position);
                myFrozenSprite.Draw(aSpriteBatch);
            }
            else
            {
                myTileSetSprite.SetPosition(position);
                myTileSetSprite.Draw(aSpriteBatch);
            }

            //myIcon.SetPosition(position);
            //SetIconAnimation();
            //myIcon.Draw(aSpriteBatch);
        }
Example #2
0
        private async void Keeper_MessageReceived(Sprite me, Sprite.MessageReceivedArgs what)
        {
            // Figure out the positions of the net, and use that for
            // where to roam the keeper
            var top    = Net.Position.Y + Net.CostumeSize.Height / 3;
            var bottom = Net.Position.Y - Net.CostumeSize.Height / 3;
            var center = Net.Position.Y;
            var left   = Net.Position.X - Net.CostumeSize.Width / 2;
            var right  = Net.Position.X + Net.CostumeSize.Width / 2;

            if (what.message == "shoot")
            {
                await me.Glide(0.5, new Point(Random(left, right), Random(bottom, top)));
            }
            if (what.message == "reset")
            {
                var start = me.GetVariable <Point>("start");
                me.SetPosition(start);
            }
            if (what.message == "win")
            {
                me.Say("Great job!");
            }
            if (what.message == "lose")
            {
                me.Say("Try again!");
            }
        }
Example #3
0
        TextureManager texturemanager;        //纹理管理器
        public BackGroundImage(TextureManager _t, Renderer _renderer, string TextureName,
                               Rectangle UVs, float width = 385, float height = 450)
        {
            texturemanager = _t;
            renderer       = _renderer;
            current_rect   = new Rectangle(0.1f, 0, 0.8f, 0.8f);
            this.UVs       = UVs;
            this.width     = width; this.height = height;

            map_up         = new Sprite();
            map_up.Texture = texturemanager.Get(TextureName);
            map_up.SetWidth(width);
            map_up.SetHeight(height);
            map_up.SetPosition(X, Y);
            map_up.SetUVs(new Point(current_rect.X, current_rect.Y),
                          new Point(current_rect.X + current_rect.Width, current_rect.Y + current_rect.Height));

            map_down         = new Sprite();
            map_down.Texture = texturemanager.Get(TextureName);
            map_down.SetWidth(width);
            map_down.SetHeight(height);
            map_down.SetPosition(X, Y);
            map_down.SetUVs(new Point(current_rect.X, current_rect.Y),
                            new Point(current_rect.X + current_rect.Width, current_rect.Y + current_rect.Height));
        }
Example #4
0
        private void Ball_Loaded(Sprite me)
        {
            me.SetPosition(0, BottomEdge / 2);
            me.SetVariable <Point>("start", me.Position);
            me.Variable["ready"] = true;
            me.Show();
            me.SetCostume("05/15.png");
            me.KeyPressed      += Ball_KeyPressed;
            me.MessageReceived += Ball_MessageReceived;
            me.PointerPressed  += Ball_PointerPressed;

            Task.Factory.StartNew(async() =>
            {
                while (Running)
                {
                    if (IsGamePadButtonPressed(GamepadButtons.A))
                    {
                        bool ready = me.GetVariable <Boolean>("ready");
                        if (ready)
                        {
                            Ball_Fire(me);
                        }
                    }

                    await Delay(0.05);
                }
                while (!IsGamePadButtonPressed(GamepadButtons.Menu))
                {
                    await Delay(0.1);
                }
                GoBack();
            }, TaskCreationOptions.LongRunning);
        }
Example #5
0
    // TODO: extract 9 element scaling into separate class, use it also for bars
    public GUIBox(Vector2 pos, Vector2 size, Func <bool> shouldShow = null) :
        base(pos, size, Game.guiResourceLoader.GetResource(GUI_SHEET) as Texture, size / REGION_SIZE, shouldShow)
    {
        Texture tex = Game.guiResourceLoader.GetResource(GUI_SHEET) as Texture;

        for (int x = 0; x < 3; ++x)
        {
            for (int y = 0; y < 3; ++y)
            {
                Sprite s = (x == 1 && y == 1) ? sprite : new Sprite();
                s.Texture       = tex;
                s.RegionEnabled = true;
                s.RegionRect    = new Rect2(x * REGION_SIZE, y * REGION_SIZE, REGION_SIZE, REGION_SIZE);
                if (!(x == 1 && y == 1))
                {
                    s.SetPosition(size / 2 * new Vector2(x - 1, y - 1));
                    if (x == 1 && y != 1)
                    {
                        s.SetScale(new Vector2(size.x / REGION_SIZE, 1));
                    }
                    else if (y == 1 && x != 1)
                    {
                        s.SetScale(new Vector2(1, size.y / REGION_SIZE));
                    }
                    AddChild(s);
                }
            }
        }
    }
Example #6
0
        public override void Render(float xTopLeft, float yTopLeft, Batch batch)
        {
            Sprite.SetPosition((float)bounds.X - xTopLeft,
                               (float)bounds.Y - (Sprite.Height - bounds.Height) - yTopLeft);

            Sprite.Color = Color.White;
            batch.AddClone(Sprite);

            if (_dir == Direction.East)
            {
                if ((surroundDirsNW & 8) == 0)
                {
                    if ((surroundDirsNW & 1) != 0)
                    {
                        wallEndW.SetPosition((float)bounds.X - xTopLeft - 12f,
                                             (float)bounds.Y - (Sprite.Height - bounds.Height) - yTopLeft);
                        batch.AddClone(wallEndW);
                    }
                }
                if ((surroundDirsSE & 2) == 0)
                {
                    if ((surroundDirsSE & 1) != 0)
                    {
                        wallEndE.SetPosition((float)bounds.X - xTopLeft + Sprite.Width,
                                             (float)bounds.Y - (Sprite.Height - bounds.Height) - yTopLeft);
                        batch.AddClone(wallEndE);
                    }
                }
            }
        }
Example #7
0
        public override void RenderTop(float xTopLeft, float yTopLeft, Batch wallTopsBatch)
        {
            int tileSpacing = mapMgr.GetTileSpacing();

            Vector2D SEpos = new Vector2D();

            if (_dir == Direction.East)
            {
                topSpriteNW.SetPosition((float)bounds.X - xTopLeft - 12f,
                                        (float)bounds.Y - (Sprite.Height - bounds.Height) - yTopLeft);

                SEpos += topSpriteNW.Position + new Vector2D(tileSpacing, 0f);
            }
            else
            {
                topSpriteNW.SetPosition((float)bounds.X - xTopLeft,
                                        (float)bounds.Y - (Sprite.Height - bounds.Height) - yTopLeft - 12f);

                SEpos += topSpriteNW.Position + new Vector2D(0f, tileSpacing);
            }

            topSpriteSE.SetPosition(SEpos.X, SEpos.Y);

            topSpriteNW.Color = Color.White;
            topSpriteSE.Color = Color.White;

            topSprite.Color = Color.White;
            topSprite.SetPosition((float)bounds.X - xTopLeft,
                                  (float)bounds.Y - (Sprite.Height - bounds.Height) - yTopLeft);

            wallTopsBatch.AddClone(topSprite);

            wallTopsBatch.AddClone(topSpriteNW);
            wallTopsBatch.AddClone(topSpriteSE);
        }
 public Enemy(TextureManager textureManager)
 {
     _spaceship.Texture = textureManager.Get("enemy_ship");
     _spaceship.SetScale(_scale, _scale);
     _spaceship.SetRotation(Math.PI); // make it face the player
     _spaceship.SetPosition(200, 0);  // put it somewhere easy to see
 }
Example #9
0
        void initiazeSprits()
        {
            initPosition();
            Sprits = new Dictionary <int, DoubleSprites>();
            Texture tex = _texturemanager.Get("Title_01");

            for (int i = 0; i < 9; i++)
            {
                Sprite spr1 = new Sprite();
                Sprite spr2 = new Sprite();
                spr1.Texture = tex;
                spr2.Texture = tex;
                if (i == _START_)
                {
                    spr1.SetUVs(new Point(0, 0), new Point(0.3125f, 0.0625f));
                    spr2.SetUVs(new Point(0.3125f, 0), new Point(0.625f, 0.0625f));
                    spr1.SetWidth(160); spr1.SetHeight(32);
                    spr2.SetWidth(160); spr2.SetHeight(32);
                }
                else if (i == _RESULT__)
                {
                    changeUnit(ref spr1, 0, 16, 22, 20, unit_for512);
                    changeUnit(ref spr2, 22, 16, 44, 20, unit_for512);
                    spr1.SetWidth(22 * 8); spr1.SetHeight(32);
                    spr2.SetWidth(22 * 8); spr2.SetHeight(32);
                }
                else if (i == _MUSIC_)
                {
                    changeUnit(ref spr1, 0, 20, 22, 24, unit_for512);
                    changeUnit(ref spr2, 22, 20, 44, 24, unit_for512);
                    spr1.SetWidth(22 * 8); spr1.SetHeight(32);
                    spr2.SetWidth(22 * 8); spr2.SetHeight(32);
                }
                else if (i == _REPLY_)
                {
                    changeUnit(ref spr1, 0, 12, 12, 16, unit_for512);
                    changeUnit(ref spr2, 12, 12, 24, 16, unit_for512);
                    spr1.SetWidth(12 * 8); spr1.SetHeight(32);
                    spr2.SetWidth(12 * 8); spr2.SetHeight(32);
                }
                else if (i == _OPTION_)
                {
                    changeUnit(ref spr1, 0, 28, 14, 32, unit_for512);
                    changeUnit(ref spr2, 14, 28, 28, 32, unit_for512);
                    spr1.SetWidth(14 * 8); spr1.SetHeight(32);
                    spr2.SetWidth(14 * 8); spr2.SetHeight(32);
                }
                else if (i == _QUIT_)
                {
                    changeUnit(ref spr1, 0, 32, 10, 36, unit_for512);
                    changeUnit(ref spr2, 10, 32, 20, 36, unit_for512);
                    spr1.SetWidth(10 * 8); spr1.SetHeight(32);
                    spr2.SetWidth(10 * 8); spr2.SetHeight(32);
                }
                spr1.SetPosition(Positions[i].X, Positions[i].Y);
                spr2.SetPosition(Positions[i].X, Positions[i].Y);
                Sprits.Add(i, new DoubleSprites(spr1, spr2));
            }
        }
Example #10
0
    // Set the offset value of the sprite without any position change
    private void SetSpriteOffset(Vector2 newOffset)
    {
        float   newPosY     = sprite.Position.y + (sprite.Offset.y - newOffset.y);
        Vector2 newPosition = new Vector2(sprite.Position.x, newPosY);

        sprite.SetPosition(newPosition);
        sprite.SetOffset(newOffset);
    }
Example #11
0
        public void UpdateSprites()
        {
            // Updates the position and rotation of the entity's sprite
            // ================

            m_sprite.SetPosition(FarseerPhysics.ConvertUnits.ToDisplayUnits(fs_body.Position));
            m_sprite.SetRotationDegrees(Util.RadiansToDegrees(fs_body.Rotation));
        }
Example #12
0
        public override void Render(Renderer renderer)
        {
            Sprite sp = Sprites[Index];

            sp.SetPosition(Position.X, Position.Y);
            sp.SetColor(new Color(1, 1, 1, 0.5f));
            renderer.DrawSprite(sp, Position.X, Position.Y, OffsetAngle + 90);
        }
        public MultipleTexturesState(TextureManager textureManager)
        {
            _spaceship1.Texture = textureManager.Get("spaceship");
            _spaceship2.Texture = textureManager.Get("spaceship2");

            // Move the first spaceship, so they're not overlapping.
            _spaceship1.SetPosition(-300, 0);
        }
Example #14
0
        public Floor(TileState state, RectangleF rect)
            : base(state, rect)
        {
            ConnectSprite = false;
            name          = "Floor";

            Sprite = _resourceManager.GetSprite("floor_texture");
            Sprite.SetPosition(Position.X, Position.Y);
        }
Example #15
0
        public override void SetPosition(float x, float y)
        {
            base.SetPosition(x, y);
            Depth = (int)(Y + Height);

            sprite.SetPosition(X + Width / 2, Y + Height / 2);
            debugBounds.SetPosition(X, Y);
            debugBounds.ApplyChanges();
        }
Example #16
0
        public Space(TileState state, RectangleF rect)
            : base(state, rect)
        {
            ConnectSprite = false;
            name          = "Space";

            Sprite = _resourceManager.GetSprite("space_texture");
            Sprite.SetPosition(Position.X, Position.Y);
        }
Example #17
0
        public override void Render()
        {
            base.Render();
            //从动画中取出纹理,并设定属性值
            Sprite sp = animation.GetSprite();

            sp.SetPosition(Position.X, Position.Y);
            //使用一般着色器进行着色
            renderer.DrawSprite(sp);
        }
Example #18
0
        /// <summary>
        /// Draws the object onto the given sprite batch.
        /// </summary>
        /// <param name="batch">The sprite batch to draw to.</param>
        /// <param name="gameTime">The game time.</param>
        public override void Draw(SpriteBatch batch, GameTime gameTime)
        {
            if (!Inside)
            {
                // Make the person jump while moving.
                Sprite.SetPosition(new Point((int)Position.X, (int)(Position.Y + (JumpHeight / 2)) + (int)(Math.Sin(Position.X / 5) * JumpHeight)));

                base.Draw(batch, gameTime);
            }
        }
Example #19
0
        public override void Render(Renderer renderer)
        {
            base.Render(renderer);
            Sprite sp = Sprites[currentIndex];

            sp.SetWidth(width);
            sp.SetHeight(height);
            sp.SetColor(new Color(1, 1, 1, 0.8f));
            sp.SetPosition(Position.X, Position.Y);
            renderer.DrawSprite(sp);
        }
Example #20
0
 private void Ball_MessageReceived(Sprite me, Sprite.MessageReceivedArgs what)
 {
     if (what.message == "reset")
     {
         me.Say();
         me.SetSize(1.0);
         me.SetVariable <Boolean>("ready", true);
         var start = me.GetVariable <Point>("start");
         me.SetPosition(start);
     }
 }
Example #21
0
        private void Astro_Cat_Loaded(Sprite me)
        {
            me.SetCostume("02/6.png");
            me.Show();
            me.SetPosition(0, 0);
            me.KeyPressed += Astro_Cat_KeyPressed;

            Task.Run(async() =>
            {
                while (Running)
                {
                    me.ChangeYby(2);
                    await Delay(0.3);
                    me.ChangeYby(-2);
                    await Delay(0.3);
                }
            });

            Task.Run(async() =>
            {
                while (Running)
                {
                    if (me.IsTouching(Lightning))
                    {
                        me.PlaySound("02/Zap.wav");
                        Lightning.Hide();
                        double opacity = me.ReduceOpacityBy(0.2);
                        if (opacity < 0.2)
                        {
                            me.Hide();
                            me.Say("You lose!!");
                        }
                    }
                    else
                    {
                        await Delay(0.2);
                    }
                }
            });

            Task.Factory.StartNew(async() =>
            {
                while (Running)
                {
                    var stick = GetGamePadLeftStick();
                    if (stick.HasValue)
                    {
                        me.ChangeXby(stick.Value.X * 20);
                        me.ChangeYby(stick.Value.Y * 20);
                    }
                    await Delay(0.05);
                }
            }, TaskCreationOptions.LongRunning);
        }
Example #22
0
        protected Tile(TileState state, RectangleF rect)
        {
            _resourceManager = IoCManager.Resolve <IResourceManager>();
            _lightManager    = IoCManager.Resolve <ILightManager>();

            tileState = state;

            bounds = rect;

            Sprite = _resourceManager.GetSprite("space_texture");
            Sprite.SetPosition(Position.X, Position.Y);
        }
Example #23
0
        protected Tile(TileState state, RectangleF rect)
        {
            _resourceManager = IoCManager.Resolve<IResourceManager>();
            _lightManager = IoCManager.Resolve<ILightManager>();

            tileState = state;

            bounds = rect;

            Sprite = _resourceManager.GetSprite("space_texture");
            Sprite.SetPosition(Position.X, Position.Y);
        }
Example #24
0
        private void Player_Loaded(Sprite me)
        {
            me.SetPosition(LeftEdge / 2, BottomEdge / 2);
            me.SetVariable <double>("starty", me.Position.Y);
            me.SetCostume("09/18.png");
            me.SetRotationStyle(Sprite.RotationStyle.LeftRight);
            me.Show();
            me.KeyPressed      += Player_KeyPressed;
            me.MessageReceived += Player_MessageReceived;
            me.Touched         += Player_Touched;

            Task.Factory.StartNew(Player_Gamepad, TaskCreationOptions.LongRunning);
        }
Example #25
0
        /// <summary>
        /// 通过Bonus_Font进行书写文字
        /// </summary>
        /// <param name="renderer">着色器</param>
        /// <param name="font">Bonus_Font工具</param>
        /// <param name="str">需要书写的字符串</param>
        /// <param name="x">字符串中心的坐标x位置</param>
        /// <param name="y">字符串中心的坐标y位置</param>
        /// <param name="alpha">显示透明度</param>
        /// <param name="dis">字体间的间距</param>
        public static void WriteText(Renderer renderer, Bonus_Font font, string str,
                                     double x, double y, float alpha = 1, float dis = 8)
        {
            char[] Arr      = str.ToCharArray();
            int    lenth    = Arr.Length;
            float  offset_x = -(lenth / 2) * dis;          //坐标偏移量

            for (int i = 0; i < lenth; i++)
            {
                Sprite sp = font.GetChar(Arr[i].ToString());
                if (Arr[i] != '/')
                {
                    sp.SetPosition(x + dis * i + offset_x, y);
                }
                else
                {
                    sp.SetPosition(x + dis * i + offset_x, y + 4);
                }
                sp.SetColor(new Color(1, 1, 1, alpha));
                renderer.DrawSprite(sp);
            }
        }
Example #26
0
        private void Player_SceneLoaded_LeftRight(Sprite me)
        {
            // Set up the player with all initial values and event handlers
            me.SetPosition(RightEdge * 2 / 3 - 100, 0);
            me.Show();
            me.SetCostume("04/7.png");
            me.SetRotationStyle(Sprite.RotationStyle.LeftRight);

            Task.Run(async() =>
            {
                await Square(me);
            });
        }
Example #27
0
        public void Draw(SpriteBatch aSpriteBatch, float aTileSize)
        {
            //(myPosition.Y >= myGridBundle.Container.GetInitialHeight() && myGridBundle.Behavior.GetRaisingOffset() != 0f) == false)


            myGridBundle.Behavior.Draw(aSpriteBatch);

            float invertedYPosition = myGridBundle.Container.GetInitialHeight() - myPosition.Y;
            float yPosition         = invertedYPosition - 1 + myGridBundle.Behavior.GetRaisingOffset();

            mySprite.SetPosition(new Vector2(myPosition.X, yPosition) * aTileSize + myGridBundle.Behavior.GetOffset() + new Vector2(-1, -1));
            mySprite.Draw(aSpriteBatch);
        }
Example #28
0
        public void Draw(SpriteBatch aSpriteBatch)
        {
            myBackdropSprite.SetColor(myBackdropColor);
            myBackdropSprite.SetPosition(myPosition);

            myBackdropSprite.Draw(aSpriteBatch);
            aSpriteBatch.DrawString(myFont, myText, myPosition, Color.White);

            //aSpriteBatch.DrawString(myFont,
            //    "Bonus time: " + myChainTimer.ToString() +
            //    "\nGame Time: " + myGameTime.ToString() +
            //    "\nGame Speed: " + myGameSpeed.ToString()
            //    , new Vector2(500, 100), Color.MidnightBlue);
        }
Example #29
0
        public override void Draw(SpriteBatch aSpriteBatch, Vector2 aGridOffset, int aGridHeight, float aRaisingOffset)
        {
            mySprite.SetPosition(GetScreenPosition(aGridOffset, aGridHeight, aRaisingOffset));
            mySprite.Draw(aSpriteBatch);

            if (myIcon == null)
            {
                return;
            }

            myIcon.SetPosition(GetScreenPosition(aGridOffset, aGridHeight, aRaisingOffset));
            SetIconAnimation();
            myIcon.Draw(aSpriteBatch);
        }
Example #30
0
        /// <summary>
        /// Updates the pointer location
        /// </summary>
        public void Update()
        {
            //If the game is not being played
            if (World.worldState != World.States.play)
            {
                //If there is a player currently recognized by the kinect or if the game is not in setup
                if (Player.gameState != Player.States.noplayer || Player.gameState != Player.States.setup)
                {
                    //Create variable to hold pointer location
                    Vector2 curPos;

                    //Set the pointer location to the current controller
                    if (kinect.KinectController)
                    {
                        SkeletonPoint rightHand = kinect.ScaledHand("right").Position;
                        curPos = new Vector2(rightHand.X, rightHand.Y);
                    }
                    else
                    {
                        curPos = mouse.CheckInput();
                    }

                    //Check to see if the pointer is currently being used
                    if (Math.Abs(curPos.X - prevPos.X) > 10 && Math.Abs(curPos.Y - prevPos.Y) > 10)
                    {
                        prevPos    = curPos;
                        clickTimer = 0;

                        if (kinect.KinectController)
                        {
                            IsLeftClicked = false;
                        }
                    }
                    else
                    {
                        ++timer;
                        ++clickTimer;
                    }

                    if (clickTimer >= 3 * Driver.REFRESH_RATE)
                    {
                        IsLeftClicked = true;
                        clickTimer    = 0;
                    }

                    sprite.SetPosition(curPos);
                    clicking.SetPosition(sprite.GetPosition);
                }
            }
        }
Example #31
0
    public void test_godot_api_call()
    {
        int start = OS.GetTicksMsec();

        for (int i = 0; i < 100000; i++)
        {
            Sprite s = new Sprite();
            s.SetPosition(new Vector2(100, 100));
            s.SetName("Hello");
            s.Free();
        }

        GD.Printt("C#:", OS.GetTicksMsec() - start);
    }
Example #32
0
        public BackGround(TextureManager _texturemanager, int level, Particle.Particles _p = null)
        {
            if (_p != null)
            {
                particles = _p;
                allowrunParticles = true;
            }

            this.level = level;
            renderer = Stage1State._renderer;
            this.texturemanager = _texturemanager;

            Texture texture = _texturemanager.Get("shade1");
            background = new Sprite();
            background.Texture = texture;
            background.SetPosition(0, 225);
            background.SetHeight(450);
            background.SetWidth(385+10);

            tree = new List<Tree>();

            //添加一开始就有的树
            for (int i = 0; i < 3; i++)
            {
                backgroundimage = new BackGroundImage(_texturemanager, renderer, "stg1bg", new Rectangle(0.01f, 0.01f, 0.48f, 0.48f), 385+10, 450);
                SpeedY = 0.05f;
                backgroundimage.SetPosition(0, 225);

                Tree tree1 = new Tree(texturemanager, renderer, "stg1bg", false, 200, 200);
                tree1.setTop(400);
                tree1.setPosition(16 + 30 * (float)random.NextDouble() - 15, i*200 + 60 * (float)random.NextDouble() - 30);
                tree.Add(tree1);

                tree1 = new Tree(texturemanager, renderer, "stg1bg", true, 200, 200);
                tree1.setTop(400);
                tree1.setPosition(-100 + 30 * (float)random.NextDouble() - 15, i * 200 + 100 * (float)random.NextDouble() - 50);
                tree.Add(tree1);

                tree1 = new Tree(texturemanager, renderer, "stg1bg", true, 200, 200);
                tree1.setTop(400);
                tree1.setPosition(160 + 30 * (float)random.NextDouble() - 15, i * 200 + 60 * (float)random.NextDouble() - 30);
                tree.Add(tree1);
            }
        }
Example #33
0
    // Add an explosion into the list (will remove self once complete)
    public void AddExplosion(Vector2 Position)
    {
        // Allocate and register the new sprite, starting with the explosion
        // Note: slight randomization to add effect
        Sprite Explosion = new Sprite("Textures/ExplosionSprite" + UnityEngine.Random.Range(0, 2)); // [0, 1]
        Explosion.SetPosition(Position);
        Explosion.SetAnimation(Vector2.zero, new Vector2(20, 20), 7, 0.06f + UnityEngine.Random.Range(-0.01f, 0.05f));
        Explosion.SetGeometrySize(Explosion.GetSpriteSize() * (0.6f + UnityEngine.Random.Range(-0.2f, 0.2f)));
        Explosion.SetRotationCenter(Explosion.GetGeometrySize() / UnityEngine.Random.Range (1.0f, 2.0f));
        Explosion.SetRotation(UnityEngine.Random.Range(0.0f, 2.0f * Mathf.PI));
        Explosion.SetDepth(Globals.ExplosionDepth);

        // Register to renderer and list
        Globals.WorldView.SManager.AddSprite(Explosion);
        Explosions.Add(Explosion);

        // Add explosion audio
        int Index = UnityEngine.Random.Range(1, 4); // [1, 4)
        Globals.WorldView.AManager.PlayAudio(Position, "Explosion" + Index);
    }
Example #34
0
        public void UpdateSpriteStates(CoronaObject obj, float worldScale, Point offsetPoint)
        {
            if (this.currentProject != null)
            {
                if (obj.isEntity == true)
                {
                    for (int i = 0; i < obj.Entity.CoronaObjects.Count; i++)
                    {
                        this.UpdateSpriteStates(obj.Entity.CoronaObjects[i], worldScale,offsetPoint);
                    }
                }
                else
                {
                    if (obj.DisplayObject != null)
                    {
                        Sprite sprite = null;
                        if (obj.DisplayObject.Type.Equals("IMAGE"))
                        {

                           sprite =  obj.DisplayObject.GorgonSprite;

                           if (sprite == null)
                           {
                               this.UpdateSpriteContent(obj, worldScale, offsetPoint);
                               return;
                           }

                           if (obj.DisplayObject.ImageFillColor == Color.Empty)
                               obj.DisplayObject.ImageFillColor = Color.White;

                           sprite.SetPosition((float)obj.DisplayObject.SurfaceRect.X + sprite.Axis.X + offsetPoint.X,
                               (float)obj.DisplayObject.SurfaceRect.Y + sprite.Axis.Y + offsetPoint.Y);
                           sprite.Rotation = obj.DisplayObject.Rotation;

                           sprite.Color = Color.FromArgb((int)(obj.DisplayObject.Alpha * 255.0f), obj.DisplayObject.ImageFillColor);

                           float imgScaleX = (float)obj.DisplayObject.SurfaceRect.Width / (float)sprite.Image.Width;
                           float imgScaleY = (float)obj.DisplayObject.SurfaceRect.Height / (float)sprite.Image.Height;

                           float finalXScale = worldScale * imgScaleX;
                           float finalYScale = worldScale * imgScaleY;
                           sprite.SetScale(finalXScale, finalYScale);

                           sprite.SetAxis((float)sprite.Image.Width / 2, (float)sprite.Image.Height / 2);
                           sprite.Rotation = obj.DisplayObject.Rotation;

                        }
                        else if (obj.DisplayObject.Type.Equals("SPRITE"))
                        {
                            CoronaSpriteSet spriteSetParent = obj.DisplayObject.SpriteSet;
                            sprite = obj.DisplayObject.GorgonSprite;

                            if (sprite == null)
                            {
                                this.UpdateSpriteContent(obj, worldScale, offsetPoint);
                                return;
                            }

                            if (obj.DisplayObject.CurrentSequence == "DEFAULT")
                            {
                                if (obj.DisplayObject.SpriteSet.Frames.Count > 0)
                                {
                                    //Charger le sprite avec la current frame
                                    SpriteFrame spriteFrame = spriteSetParent.Frames[obj.DisplayObject.CurrentFrame];

                                    float factor = obj.DisplayObject.SpriteSet.Frames[obj.DisplayObject.CurrentFrame].SpriteSheetParent.FramesFactor;
                                    if (factor <= 0)
                                        factor = 1;
                                    int width = Convert.ToInt32((float)sprite.Image.Width / factor);
                                    int height = Convert.ToInt32((float)sprite.Image.Height / factor);
                                    obj.DisplayObject.SurfaceRect = new Rectangle(obj.DisplayObject.SurfaceRect.Location, new Size(width, height));

                                }
                            }
                            else
                            {
                                CoronaSpriteSetSequence sequence = obj.DisplayObject.getSequenceByName(obj.DisplayObject.CurrentSequence);
                                if (sequence != null)
                                {

                                    int convertedCurrentFrame = obj.DisplayObject.CurrentFrame + sequence.FrameDepart - 1;

                                    if (obj.DisplayObject.SpriteSet.Frames.Count > 0 && obj.DisplayObject.SpriteSet.Frames.Count > convertedCurrentFrame)
                                    {
                                        //Charger le sprite avec la current frame
                                        SpriteFrame spriteFrame = spriteSetParent.Frames[convertedCurrentFrame];

                                        float factor = obj.DisplayObject.SpriteSet.Frames[convertedCurrentFrame].SpriteSheetParent.FramesFactor;
                                        if (factor <= 0)
                                            factor = 1;
                                        int width = Convert.ToInt32((float)sprite.Image.Width / factor);
                                        int height = Convert.ToInt32((float)sprite.Image.Height / factor);
                                        obj.DisplayObject.SurfaceRect = new Rectangle(obj.DisplayObject.SurfaceRect.Location, new Size(width, height));

                                    }
                                    else
                                    {
                                        obj.DisplayObject.CurrentFrame = sequence.FrameCount - 1;
                                        this.UpdateSpriteContent(obj, worldScale,offsetPoint);
                                    }
                                }
                                else
                                {
                                    obj.DisplayObject.setSequence("");
                                    this.UpdateSpriteContent(obj, worldScale, offsetPoint);

                                }
                            }
                            sprite.Color = Color.FromArgb((int)(obj.DisplayObject.Alpha * 255.0f), Color.White);

                            sprite.SetPosition((float)obj.DisplayObject.SurfaceRect.X + sprite.Axis.X + offsetPoint.X,
                                (float)obj.DisplayObject.SurfaceRect.Y + sprite.Axis.Y + offsetPoint.Y);

                            float imgScaleX = (float)obj.DisplayObject.SurfaceRect.Width / (float)sprite.Image.Width;
                            float imgScaleY = (float)obj.DisplayObject.SurfaceRect.Height / (float)sprite.Image.Height;

                            float finalXScale = worldScale * imgScaleX;
                            float finalYScale = worldScale * imgScaleY;
                            sprite.SetScale(finalXScale, finalYScale);

                            sprite.SetAxis((float)sprite.Image.Width / 2, (float)sprite.Image.Height / 2);
                            sprite.Rotation = obj.DisplayObject.Rotation;

                        }

                        else if (obj.DisplayObject.Type.Equals("FIGURE"))
                        {
                            Krea.CGE_Figures.Figure fig = obj.DisplayObject.Figure;

                            if (fig.ShapeType.Equals("RECTANGLE"))
                            {
                                this.CleanSprite(obj,false,false);

                                Bitmap textureFigure = fig.DrawInBitmap((int)(255.0f * obj.DisplayObject.Alpha),worldScale);

                                sprite = new Sprite(obj.DisplayObject.Name, GorgonLibrary.Graphics.Image.FromBitmap("shape_" + obj.DisplayObject.Name, textureFigure));
                                obj.DisplayObject.GorgonSprite = sprite;

                                textureFigure.Dispose();
                                textureFigure = null;

                                sprite.SetAxis((float)sprite.Image.Width / 2, (float)sprite.Image.Height / 2);
                                sprite.SetPosition((float)obj.DisplayObject.SurfaceRect.X + sprite.Axis.X + offsetPoint.X,
                                    (float)obj.DisplayObject.SurfaceRect.Y + sprite.Axis.Y + offsetPoint.Y);
                                sprite.Rotation = obj.DisplayObject.Rotation;

                            }
                            else if (fig.ShapeType.Equals("TEXT"))
                            {
                                //this.CleanSprite(obj, false, false);

                                //Bitmap textureFigure = fig.DrawInBitmap((int)(255.0f * obj.DisplayObject.Alpha),1);

                                //sprite = new Sprite(obj.DisplayObject.Name, GorgonLibrary.Graphics.Image.FromBitmap("text_" + obj.DisplayObject.Name, textureFigure));
                                //obj.DisplayObject.GorgonSprite = sprite;

                                //sprite.SetAxis((float)sprite.Image.Width / 2, (float)sprite.Image.Height / 2);
                                //sprite.SetPosition((float)obj.DisplayObject.SurfaceRect.X + sprite.Axis.X + offsetPoint.X,
                                //    (float)obj.DisplayObject.SurfaceRect.Y + sprite.Axis.Y + offsetPoint.Y);
                                //sprite.Rotation = obj.DisplayObject.Rotation;

                                //Krea.CGE_Figures.Texte textObject = fig as Krea.CGE_Figures.Texte;

                                //TextSprite textSprite = textObject.TextSprite;

                                //if (textSprite != null)
                                //{
                                //    textSprite.Text = textObject.txt;
                                //    textSprite.Color = Color.FromArgb((int)(obj.DisplayObject.Alpha * 255.0f),
                                //      textObject.FillColor.R, textObject.FillColor.G, textObject.FillColor.B);

                                //    textSprite.SetAxis((float)textSprite.Width / 2, (float)textSprite.Height / 2);

                                //    textSprite.SetPosition((float)obj.DisplayObject.SurfaceRect.X + textSprite.Axis.X + offsetPoint.X,
                                //        (float)obj.DisplayObject.SurfaceRect.Y + textSprite.Axis.Y + offsetPoint.Y);

                                //    textSprite.Rotation = obj.DisplayObject.Rotation;

                                //    textSprite.SetScale(worldScale, worldScale);

                                //}
                            }

                        }
                    }
                }
            }
        }
Example #35
0
        public BackGroundImage(TextureManager _t ,Renderer _renderer, string TextureName ,
           Rectangle UVs, float width = 385, float height = 450)
        {
            texturemanager = _t;
            renderer = _renderer;
            current_rect = new Rectangle(0.1f, 0, 0.8f, 0.8f);
            this.UVs = UVs;
            this.width = width; this.height = height;

            map_up = new Sprite();
            map_up.Texture = texturemanager.Get(TextureName);
            map_up.SetWidth(width);
            map_up.SetHeight(height);
            map_up.SetPosition(X, Y);
            map_up.SetUVs(new Point(current_rect.X , current_rect.Y),
                new Point(current_rect.X+current_rect.Width, current_rect.Y+ current_rect.Height));

            map_down = new Sprite();
            map_down.Texture = texturemanager.Get(TextureName);
            map_down.SetWidth(width);
            map_down.SetHeight(height);
            map_down.SetPosition(X, Y);
            map_down.SetUVs(new Point(current_rect.X, current_rect.Y),
                new Point(current_rect.X + current_rect.Width, current_rect.Y + current_rect.Height));
        }
Example #36
0
 public void SetSpriteCenter(Sprite sprite, Vector2D center)
 {
     sprite.SetPosition(center.X - (GetActiveDirectionalSprite().AABB.Width/2),
                        center.Y - (GetActiveDirectionalSprite().AABB.Height/2));
 }
Example #37
0
    // Add glow ontop of what is being fired
    public void AddGlow(Vector2 Position)
    {
        // Sprite info
        Vector2 GlowPos = ProjectileInfo.GetKey_Vector2("Glow", "Pos");
        Vector2 GlowSize = ProjectileInfo.GetKey_Vector2("Glow", "Size");

        // Allocate and register the new sprite
        // Note: slight randomization to add effect
        Sprite Explosion = new Sprite("Textures/Projectiles");
        Explosion.SetAnimation(GlowPos, GlowSize, 1, 1.0f);

        // Set in-world properties
        Explosion.SetPosition(Position);
        Explosion.SetGeometrySize(Explosion.GetSpriteSize() * (0.6f + UnityEngine.Random.Range(-0.2f, 0.2f)));
        Explosion.SetRotationCenter(Explosion.GetGeometrySize() / 2.0f);
        Explosion.SetRotation(UnityEngine.Random.Range(0.0f, 2.0f * Mathf.PI));
        Explosion.SetDepth(Globals.ExplosionDepth);

        // Register to renderer and list
        Globals.WorldView.SManager.AddSprite(Explosion);
        Glow.Add(Explosion);
    }
Example #38
0
        void initiazeSprits()
        {
            initPosition();
            Sprits = new Dictionary<int, DoubleSprites>();
            Texture tex = _texturemanager.Get("Title_01");
            for (int i = 0; i < 9; i++)
            {
                Sprite spr1 = new Sprite();
                Sprite spr2 = new Sprite();
                spr1.Texture = tex;
                spr2.Texture = tex;
                if (i == _START_)
                {
                    spr1.SetUVs(new Point(0, 0), new Point(0.3125f, 0.0625f));
                    spr2.SetUVs(new Point(0.3125f, 0), new Point(0.625f, 0.0625f));
                    spr1.SetWidth(160); spr1.SetHeight(32);
                    spr2.SetWidth(160); spr2.SetHeight(32);
                }
                else if (i == _RESULT__)
                {
                    changeUnit(ref spr1, 0, 16, 22, 20, unit_for512);
                    changeUnit(ref spr2, 22, 16, 44, 20, unit_for512);
                    spr1.SetWidth(22*8); spr1.SetHeight(32);
                    spr2.SetWidth(22*8); spr2.SetHeight(32);
                }
                else if (i == _MUSIC_)
                {
                    changeUnit(ref spr1, 0, 20, 22, 24, unit_for512);
                    changeUnit(ref spr2, 22, 20, 44, 24, unit_for512);
                    spr1.SetWidth(22 * 8); spr1.SetHeight(32);
                    spr2.SetWidth(22 * 8); spr2.SetHeight(32);
                }
                else if (i == _REPLY_)
                {
                    changeUnit(ref spr1, 0, 12, 12, 16, unit_for512);
                    changeUnit(ref spr2, 12, 12, 24, 16, unit_for512);
                    spr1.SetWidth(12 * 8); spr1.SetHeight(32);
                    spr2.SetWidth(12 * 8); spr2.SetHeight(32);

                }
                else if (i == _OPTION_)
                {
                    changeUnit(ref spr1, 0, 28, 14, 32, unit_for512);
                    changeUnit(ref spr2, 14, 28, 28, 32, unit_for512);
                    spr1.SetWidth(14 * 8); spr1.SetHeight(32);
                    spr2.SetWidth(14 * 8); spr2.SetHeight(32);
                }
                else if (i == _QUIT_)
                {
                    changeUnit(ref spr1, 0, 32, 10, 36, unit_for512);
                    changeUnit(ref spr2, 10, 32, 20, 36, unit_for512);
                    spr1.SetWidth(10 * 8); spr1.SetHeight(32);
                    spr2.SetWidth(10 * 8); spr2.SetHeight(32);
                }
                spr1.SetPosition(Positions[i].X, Positions[i].Y);
                spr2.SetPosition(Positions[i].X, Positions[i].Y);
                Sprits.Add(i, new DoubleSprites(spr1, spr2));
            }
        }
Example #39
0
		public static void Main(string[] args)
		{

			Initialize();

			Console.Out.WriteLine("Left-click on graph to zoom in.");
			Console.Out.WriteLine("Right-click on graph to toggle between Mandelbrot/Julia graphs.");
			Console.Out.WriteLine("Press the SPACE key to create a new palette.");
			Console.Out.WriteLine("Press the ENTER key to smooth the graph.");
			Console.Out.WriteLine("Press the cursor keys to scroll the graph up/down/left/right.");
			Console.Out.WriteLine("Press the ESC key to close the application.");
			Console.Out.WriteLine();
			Console.Out.WriteLine("Press ENTER to start.");
			Console.In.ReadLine();
			Clear();

			PointerTexture = AddSpriteTexture(GetResourceBitmap("Pointer.png"), System.Drawing.Color.FromArgb(0, 0, 255), true);
			ZTexture = AddSpriteTexture(GetResourceBitmap("Z.png"), System.Drawing.Color.FromArgb(0, 0, 255), true);
			Point P = GetMousePointer();
			Pointer = CreateSprite(P.X, P.Y, PointerTexture);

			double re0 = -0.5;
			double im0 = 0;
			double dr = 5;
			double cre0 = 0;
			double cim0 = 0;
			Color[] Palette = CreatePalette(1024, 16);

			OnKeyDown += (sender, e) =>
			{
				switch (e.Key)
				{
					case Key.Escape:
						Terminated.Set();
						break;

					case Key.C:
						if (e.Control)
							Terminated.Set();
						break;

					case Key.Space:
						NewPalette.Set();
						break;

					case Key.Enter:
						CalcSmooth.Set();
						break;

					case Key.Left:
						if (!Calculating)
						{
							re0 -= dr * 0.25;
							NewFractal.Set();
						}
						break;

					case Key.Right:
						if (!Calculating)
						{
							re0 += dr * 0.25;
							NewFractal.Set();
						}
						break;

					case Key.Up:
						if (!Calculating)
						{
							im0 -= dr * 0.25;
							NewFractal.Set();
						}
						break;

					case Key.Down:
						if (!Calculating)
						{
							im0 += dr * 0.25;
							NewFractal.Set();
						}
						break;
				}
			};

			OnMouseMove += (sender, e) =>
			{
				P = e.Position;
				Pointer.SetPosition(P);

				int DX = P.X - RasterWidth / 2;
				int DY = P.Y - RasterHeight / 2;

				Pointer.Angle = 90 + 22.5 + System.Math.Atan2(DY, DX) * 180 / System.Math.PI;
			};

			CalcMandelbrot(re0, im0, dr, Palette);

			OnMouseDown += (sender, e) =>
			{
				if (!Calculating)
				{
					if (e.LeftButton)
					{
						re0 = re0 + dr * (e.X - RasterWidth * 0.5) / RasterWidth;
						im0 = im0 + dr * (e.Y - RasterHeight * 0.5) / RasterWidth;	// Note: /RasterWidth, not /RasterHeight
						dr /= 4;
						NewFractal.Set();
					}
					else if (e.RightButton)
					{
						if (MandelbrotMode)
						{
							cre0 = re0 + dr * (e.X - RasterWidth * 0.5) / RasterWidth;
							cim0 = im0 + dr * (e.Y - RasterHeight * 0.5) / RasterWidth;	// Note: /RasterWidth, not /RasterHeight
							MandelbrotMode = false;
							re0 = 0;
							im0 = 0;
							dr = 5;
						}
						else
						{
							MandelbrotMode = true;
							re0 = -0.5;
							im0 = 0;
							dr = 5;
						}

						NewFractal.Set();
					}
				}
			};

			WaitHandle[] Handles = new WaitHandle[] { Terminated, NewFractal, NewPalette, CalcSmooth };
			bool Continue = true;

			while (Continue)
			{
				switch (WaitHandle.WaitAny(Handles, 60000))
				{
					case 0:
						Continue = false;
						break;

					case 1:
						if (MandelbrotMode)
							CalcMandelbrot(re0, im0, dr, Palette);
						else
							CalcJulia(re0, im0, cre0, cim0, dr, Palette);
						break;

					case 2:
						Palette = CreatePalette(1024, 16);
						if (MandelbrotMode)
							CalcMandelbrot(re0, im0, dr, Palette);
						else
							CalcJulia(re0, im0, cre0, cim0, dr, Palette);
						break;

					case 3:
						BeginCalculation();
						try
						{
							double[] Boundary = FindBoundaries(ColorIndex, RasterWidth, RasterHeight);
							Smooth(ColorIndex, Boundary, RasterWidth, RasterHeight, Palette.Length, Palette);
						}
						finally
						{
							EndCalculation();
						}
						break;
				}
			}

			Terminate();
		}
Example #40
0
 //Does exactly what it says on the tin.
 public static Sprite CreateSprite(string texture, int x, int y, float scale)
 {
     Sprite sprite = new Sprite(textures[texture], texture);
     sprite.scale = scale;
     sprite.SetPosition(x, y);
     sprite.name = texture;
     gObjects.Add(sprite);
     return sprite;
 }
Example #41
0
        public BackGroundImage3D(TextureManager _t, Renderer _renderer, string TextureName, float width = 385, float height = 450)
        {
            texturemanager = _t;
            renderer = _renderer;
            this.width = width; this.height = height;

            Sprite sp;

            sp = new Sprite();
            sp.Texture = texturemanager.Get(TextureName);
            sp.SetWidth(width);
            sp.SetHeight(height);
            sp.SetPosition(X, Y);

            Sprites.Add(sp);

            sp = new Sprite();
            sp.Texture = texturemanager.Get(TextureName);
            sp.SetWidth(width);
            sp.SetHeight(height);
            sp.SetPosition(X, Y);

            Sprites.Add(sp);
        }
Example #42
0
 //Creates a sprite with multiple images. Can be used for animation, different states, etc.
 public static Sprite CreateMultiSprite(string[] texture, int x, int y, float scale)
 {
     List<Texture2D> texes = new List<Texture2D>();
     for (int i = 0; i < texture.Length; i++)
     {
         texes.Add(textures[texture[i]]);
     }
     Sprite sprite = new Sprite(texes, texture);
     sprite.scale = scale;
     sprite.SetPosition(x, y);
     sprite.name = texture[0];
     gObjects.Add(sprite);
     return sprite;
 }
Example #43
0
        public PlayerOne(TextureManager _t , Renderer renderer)
        {
            this.renderer = renderer;
            Width = 32;
            Height = 48;

            position = new Vector2D(0, 50);

            //Texture texture = _t.Get("Player00");
            //sprite = new Sprite();
            //sprite.Texture = texture;
            //sprite.SetWidth(Width);
            //sprite.SetHeight(Height);
            //sprite.SetPosition(position.X, position.Y);
            //multiSprite = new MultiSprite(sprite);
            //RecTangleF[] rects = new RecTangleF[8];
            //for (int i = 0; i < 8;i++ )
            //    rects[i] = new RecTangleF(0 + i * 4 * per_256, 0, 4 * per_256 + i * 4 * per_256, 6 * per_256);
            //multiSprite.RegeditState(0, rects);      //将此rectangleF注册到0号state
            //multiSprite.State = 0;                   //将状态切换为0号state

            Texture texture = _t.Get("Player2");
            sprite = new Sprite();
            sprite.Texture = texture;
            sprite.SetWidth(Width);
            sprite.SetHeight(Height);
            sprite.SetPosition(position.X, position.Y);
            multiSprite = new MultiSprite(sprite);

            RecTangleF[] rects = new RecTangleF[4];
            for (int i = 0; i < 4; i++)
                rects[i] = new RecTangleF(0 + i * 4 * per_256, 0, 4 * per_256 + i * 4 * per_256, 6 * per_256);
            multiSprite.RegeditState(0, rects);      //将此rectangleF注册到0号state

            rects = new RecTangleF[3];
            for (int i = 0; i < 3; i++)
                rects[i] = new RecTangleF( i * 4 * per_256, 6 * per_256,
                    4 * per_256 + i * 4 * per_256, 12 * per_256);
            multiSprite.RegeditState(1, rects);      //将此rectangleF注册到1号state (过渡移动)

            rects = new RecTangleF[4];
            for (int i = 0; i < 4; i++)
                rects[i] = new RecTangleF(12*per_256 + i * 4 * per_256, 6*per_256,
                   12*per_256+ 4 * per_256 + i * 4 * per_256, 12 * per_256);
            multiSprite.RegeditState(2, rects);      //将此rectangleF注册到2号state (移动)

            rects = new RecTangleF[3];
            for (int i = 0; i < 3; i++)
                rects[i] = new RecTangleF(4 * per_256 + i * 4 * per_256, 6 * per_256,
                   i * 4 * per_256, 12 * per_256);
            multiSprite.RegeditState(3, rects);      //将此rectangleF注册到3号state (过渡移动,右)

            rects = new RecTangleF[4];
            for (int i = 0; i < 4; i++)
                rects[i] = new RecTangleF(12 * per_256 + 4 * per_256 + i * 4 * per_256, 6 * per_256,
                12 * per_256 + i * 4 * per_256 , 12 * per_256);
            multiSprite.RegeditState(4, rects);      //将此rectangleF注册到4号state (移动)

            multiSprite.RegeditCollection(1, 2);     //将1号动画连接到2号动画上
            multiSprite.RegeditCollection(3, 4);     //将3号动画连接到4号动画上
            multiSprite.State = 1;                   //将状态切换为1号state
        }