示例#1
0
 /// <summary>
 /// Creates a new instance of the <see cref="Rift.Forms.SpriteButton"/> class.
 /// </summary>
 public SpriteButton()
 {
     base.BackColor = Color.Transparent;
     base.Text = string.Empty;
     Size = new Size(48, 24);
     spriteOrientation = SpriteOrientation.Auto;
 }
示例#2
0
        private static SpriteOrientation ParseSpriteOrientation(XElement element, string attrName)
        {
            XAttribute        attribute   = element.Attribute(attrName);
            SpriteOrientation returnValue = SpriteOrientation.Up;

            if (attribute != null)
            {
                string s = (string)attribute;


                if (s.Equals(GenericParser.upsidedown))
                {
                    returnValue = SpriteOrientation.Down;
                }
                else if (s.Equals(GenericParser.rightside))
                {
                    returnValue = SpriteOrientation.Up;
                }
                else if (s.Equals(GenericParser.left))
                {
                    returnValue = SpriteOrientation.Left;
                }
                else if (s.Equals(GenericParser.right))
                {
                    returnValue = SpriteOrientation.Right;
                }
            }
            else
            {
                returnValue = IEnemyDefaultValues.Orientation;
            }

            return(returnValue);
        }
示例#3
0
        private void SpawnNeedle(SpriteOrientation orientation)
        {
            NeedleEnemy needle = null;

            for (int i = needles.Count - 1; i >= 0; i--) //Grab a dead needle from the list or...
            {
                if (needles[i].IsAlive)
                {
                    continue;
                }
                needle = needles[i];
                break;
            }
            if (needle == null) //make a new one if there were no dead needles to grab
            {
                needle = new NeedleEnemy(needleRect, this.Power, needleSpeed, needleFrequency, orientation, CollisionType.Liquid, MessageToReceivers);
                needles.Add(needle);
            }
            else
            {
                needle.Position = new Vector2(needleRect.X, needleRect.Y);
                needle.SetOrientation(orientation);
                needle.IsAlive = true;
            }
            CollisionDetector.AddCollidable(needle);
        }
示例#4
0
 /// <summary>
 /// Creates a new instance of the <see cref="Rift.Forms.SpriteButton"/> class.
 /// </summary>
 public SpriteButton()
 {
     base.BackColor    = Color.Transparent;
     base.Text         = string.Empty;
     Size              = new Size(48, 24);
     spriteOrientation = SpriteOrientation.Auto;
 }
示例#5
0
        public static AbstractAnimatedSprite GetCharacterPushingSprite(int type, SpriteOrientation orientation)
        {
            AbstractAnimatedSprite sprite = new CharacterPushingSprite(orientation);

            sprite.Texture = content.Load <Texture2D>(ReturnCorrectResourceName(type, false, "Push"));

            return(sprite);
        }
示例#6
0
        public static AbstractAnimatedSprite GetCharacterJumpingSprite(int type, SpriteOrientation orientation, bool isCharacterHoldingAnItem)
        {
            AbstractAnimatedSprite sprite = new CharacterJumpingSprite(orientation);

            sprite.Texture = content.Load <Texture2D>(ReturnCorrectResourceName(type, isCharacterHoldingAnItem, "Jump"));

            return(sprite);
        }
示例#7
0
        public static AbstractAnimatedSprite GetSpikedTerrain(SpriteOrientation orientation)
        {
            AbstractAnimatedSprite sprite = new SpikedTerrainSprite(orientation);

            sprite.Texture = content.Load <Texture2D>("Sprites\\EnvironmentSprites\\EnvironmentDesert\\SpikedTerrain");

            return(sprite);
        }
示例#8
0
        public static AbstractAnimatedSprite GetNeedleSprite(SpriteOrientation spriteOrientation)
        {
            AbstractAnimatedSprite sprite = new NeedleSprite(spriteOrientation);

            sprite.Texture = content.Load <Texture2D>("Sprites\\EnemySprites\\EnemyDesert\\NeedleSprite");

            return(sprite);
        }
 public SpikedTerrainSprite(SpriteOrientation orientation)
 {
     this.AnimationSpeed = .1f;
     this.animationIndex = 0f;
     this.frameWidth     = 16;
     this.frameHeight    = 16;
     this.frameCount     = 1;
     this.orientation    = orientation;
 }
示例#10
0
        public static ConveyorSprite GetConveyorSprite(int blockWidth, SpriteOrientation orientation, float rotationSpeed)
        {
            ConveyorSprite sprite = new ConveyorSprite(blockWidth, orientation, rotationSpeed);

            sprite.SetLeftTexture(content.Load <Texture2D>("Sprites\\InteractableSprites\\InteractableDesert\\ConveyorLeft"));
            sprite.SetMiddleTexture(content.Load <Texture2D>("Sprites\\InteractableSprites\\InteractableDesert\\ConveyorMiddle"));
            sprite.SetRightTexture(content.Load <Texture2D>("Sprites\\InteractableSprites\\InteractableDesert\\ConveyorRight"));
            sprite.PrepareConveyor();

            return(sprite);
        }
示例#11
0
 public ConveyorSprite(int blockWidth, SpriteOrientation spriteOrientation, float rotationSpeed)
 {
     this.SpriteOrientation = spriteOrientation;
     this.RotationSpeed     = rotationSpeed;
     this.blockWidth        = blockWidth;
     AnimationSpeed         = rotationSpeed * animationToSpeedScale;
     animationIndex         = 0f;
     frameWidth             = 8;
     frameHeight            = 8;
     frameCount             = 4;
     textureRects           = new List <Rectangle>(blockWidth);
 }
示例#12
0
 public NeedleSprite(SpriteOrientation spriteOrientation)
 {
     this.spriteOrientation = spriteOrientation;
     AnimationSpeed         = .05f;
     animationIndex         = 0f;
     frameWidth             = 16;
     frameHeight            = 16;
     frameCount             = 1;
     spriteX      = 3;
     spriteY      = 7;
     spriteWidth  = 8;
     spriteHeight = 3;
 }
示例#13
0
        //Response Methods
        public void ChangeDirection()
        {
            if (spriteOrientation == SpriteOrientation.Up)
            {
                spriteOrientation = SpriteOrientation.Down;
            }
            else if (spriteOrientation == SpriteOrientation.Down)
            {
                spriteOrientation = SpriteOrientation.Up;
            }
            Velocity = new Vector2(0, -Velocity.Y);

            isJumping = false;
            sprite    = SpriteFactory.GetSpiderSprite(this.spriteOrientation);
        }
示例#14
0
 public SpiderEnemy(Rectangle position, int power, int speed, int jumpFrequency, SpriteOrientation spriteOrientation, CollisionType collisionType, string message)
 {
     this.Position              = new Vector2(position.X, position.Y);
     this.Size                  = new Vector2(position.Width, position.Height);
     this.Power                 = power;
     this.Velocity              = new Vector2(0, (spriteOrientation == SpriteOrientation.Up ? -1 : 1) * speed);
     this.isJumping             = false;
     this.jumpFrequency         = jumpFrequency;
     this.jumpCurrent           = 0;
     this.IsAlive               = true;
     this.ShouldNotifyReceivers = false;
     this.spriteOrientation     = spriteOrientation;
     this.sprite                = SpriteFactory.GetSpiderSprite(this.spriteOrientation);
     this.CollisionType         = collisionType;
     this.MessageToReceivers    = message;
 }
示例#15
0
    void Update()
    {
        if (Input.GetAxis("Vertical") < 0)
        {
            direction = SpriteOrientation.ORIENT_DOWN;
        }
        if (Input.GetAxis("Vertical") > 0)
        {
            direction = SpriteOrientation.ORIENT_UP;
        }
        if (Input.GetAxis("Horizontal") > 0)
        {
            direction = SpriteOrientation.ORIENT_RIGHT;
        }
        if (Input.GetAxis("Horizontal") < 0)
        {
            direction = SpriteOrientation.ORIENT_LEFT;
        }
        if (isCarrying)
        {
            if (Input.GetKeyDown("space"))
            {
                isCarrying = false;
                item       = carryLocation.GetChild(0);
                switch (direction)
                {
                case SpriteOrientation.ORIENT_DOWN:
                    item.position = dropLocationFront.position;
                    break;

                case SpriteOrientation.ORIENT_UP:
                    item.position = dropLocationBack.position;
                    break;

                case SpriteOrientation.ORIENT_RIGHT:
                    item.position = dropLocationRight.position;
                    break;

                case SpriteOrientation.ORIENT_LEFT:
                    item.position = dropLocationLeft.position;
                    break;
                }
                item.parent = null;
                Debug.Log("Dropping Up Bomb");
            }
        }
    }
示例#16
0
        public void Parse(IEnumerable <XElement> items)
        {
            foreach (XElement element in items)
            {
                Rectangle     position      = ParsePosition(element);
                CollisionType collisionType = ParseCollisionType(element);
                string        message       = ParseMessage(element);

                if (element.Name.ToString().Equals(GenericParser.crate))
                {
                    CrateItem c = new CrateItem(position, SpriteFactory.GetCrateSprite(), collisionType, message);
                    ItemList.Add(c);
                }

                else if (element.Name.ToString().Equals(GenericParser.boulder))
                {
                    BoulderItem b = new BoulderItem(position, SpriteFactory.GetBoulderSprite(), collisionType, message);
                    ItemList.Add(b);
                }

                else if (element.Name.ToString().Equals(GenericParser.falsebrick))
                {
                    FalseBrick f = new FalseBrick(SpriteFactory.GetBrickSprite(), ParsePosition(element), ParseCollisionType(element), ParseBool(element, GenericParser.isWaitingForActivationAttr), message);
                    ItemList.Add(f);
                }

                else if (element.Name.ToString().Equals(GenericParser.button))
                {
                    ButtonItem b = new ButtonItem(position, SpriteFactory.GetButtonSprite(), collisionType, message);
                    ItemList.Add(b);
                }

                else if (element.Name.ToString().Equals(GenericParser.fishbowl))
                {
                    PickupItem f = new PickupItem(position, SpriteFactory.GetFishbowlSprite(), collisionType, message);
                    ItemList.Add(f);
                }

                else if (element.Name.ToString().Equals(GenericParser.joebota))
                {
                    PickupItem jb = new PickupItem(position, SpriteFactory.GetJoeBotaSprite(), collisionType, message);
                    ItemList.Add(jb);
                }

                else if (element.Name.ToString().Equals(GenericParser.door))
                {
                    Door d = new Door(ParseInt(element, GenericParser.nextLevelAttr), ParseBool(element, GenericParser.isWaitingForActivationAttr), SpriteFactory.GetDoorSprite(), position, collisionType, message);
                    ItemList.Add(d);
                }

                else if (element.Name.ToString().Equals(GenericParser.continuousbutton))
                {
                    ContinuousButton b = new ContinuousButton(position, SpriteFactory.GetButtonSprite(), collisionType, message);
                    ItemList.Add(b);
                }

                else if (element.Name.ToString().Equals(GenericParser.conveyor))
                {
                    int blockWidth = ParseInt(element, GenericParser.blockWidthAttr);
                    SpriteOrientation orientation = ParseSpriteOrientation(element, GenericParser.orientionAttr);
                    float             speed       = ParseFloat(element, GenericParser.speedAttr);
                    Conveyor          c           = new Conveyor(
                        new Vector2(position.X, position.Y),
                        blockWidth,
                        speed,
                        orientation,
                        ParseFloat(element, GenericParser.activatedSpeedAttr),
                        ParseSpriteOrientation(element, GenericParser.activatedOrientationAttr),
                        SpriteFactory.GetConveyorSprite(blockWidth, orientation, speed));
                    ItemList.Add(c);
                }

                else if (element.Name.ToString().Equals(GenericParser.teleporter))
                {
                    Teleporter teleporter = new Teleporter(SpriteFactory.GetTeleporterSprite(), ParsePosition(element), ParseCollisionType(element), new Vector2(ParseInt(element, GenericParser.newXAttr), ParseInt(element, GenericParser.newYAttr)), ParseBool(element, GenericParser.isWaitingForActivationAttr), message);
                    ItemList.Add(teleporter);
                }
            }
        }