Beispiel #1
0
        public override void onAddedToScene()
        {
            var texture    = scene.content.Load <Texture2D>("Images/ItemsObjects/treasureBox_small");
            var subtexture = Subtexture.subtexturesFromAtlas(texture, 14, 14);

            animation = addComponent(new Sprite <TreasureBoxStates>(subtexture[0]));
            animation.setRenderLayer(GameLayerSetting.actorMoverLayer)
            .setLayerDepth(LayerDepthExt.caluelateLayerDepth(this.position.Y));


            animation.addAnimation(TreasureBoxStates.Close, new SpriteAnimation(subtexture[0]));
            animation.addAnimation(TreasureBoxStates.Open, new SpriteAnimation(subtexture[1]));

            if (hasOpened)
            {
                animation.currentAnimation = TreasureBoxStates.Open;
            }
            else
            {
                animation.currentAnimation = TreasureBoxStates.Close;
            }
            animation.play(animation.currentAnimation);

            var rigidBody = addComponent <FSRigidBody>()
                            .setBodyType(FarseerPhysics.Dynamics.BodyType.Dynamic);

            trigger = addComponent <SceneObjectTriggerComponent>();
            trigger.setRadius(10)
            .setIsSensor(true);

            trigger.setCollisionCategories(CollisionSetting.ItemsCategory);
            trigger.setCollidesWith(CollisionSetting.playerCategory);

            trigger.onAdded += onAddedMethod;


            var eButtontexture = scene.content.Load <Texture2D>("Images/ItemsObjects/EButton");

            eButtonSprite = addComponent(new Sprite(eButtontexture));
            eButtonSprite.setLocalOffset(new Vector2(-14, -14 - eButtonSprite.height));
            eButtonSprite.enabled = false;

            var openTexture = scene.content.Load <Texture2D>("Images/ItemsObjects/openFont");

            openSprite = addComponent(new Sprite(openTexture));
            openSprite.setLocalOffset(new Vector2(-14 + eButtonSprite.width * 2, -14 - eButtonSprite.height));
            openSprite.enabled = false;
        }
Beispiel #2
0
        public override void onAddedToScene()
        {
            base.onAddedToScene();
            var eButtontexture = scene.content.Load <Texture2D>("Images/ItemsObjects/EButton");

            eButtonSprite = addComponent(new Sprite(eButtontexture));
            eButtonSprite.setLocalOffset(new Vector2(-14, -14 - eButtonSprite.height));
            eButtonSprite.enabled = false;

            var searchTexture = scene.content.Load <Texture2D>("Images/ItemsObjects/searchFont");

            searchSprite = addComponent(new Sprite(searchTexture));
            searchSprite.setLocalOffset(new Vector2(-14 + eButtonSprite.width * 2, -14 - eButtonSprite.height));
            searchSprite.enabled = false;

            var tiledMap          = scene.content.Load <TiledMap>("TileMaps/MapObjects/Sign01");
            var tiledMapComponent = addComponent(new TiledMapComponent(tiledMap));

            tiledMapComponent.setLayersToRender(new string[] { "object" });
            tiledMapComponent.setRenderLayer(GameLayerSetting.actorMoverLayer)
            .setLayerDepth(LayerDepthExt.caluelateLayerDepth(this.position.Y + 8));


            var colliderObject = tiledMap.getObjectGroup("Collision");
            var collision      = colliderObject.objectWithName("collision");

            var rigidBody = addComponent <FSRigidBody>()
                            .setBodyType(FarseerPhysics.Dynamics.BodyType.Kinematic)
            ;

            Vertices vertices = new Vertices(collision.polyPoints);
            var      collider = addComponent(new FSCollisionPolygon(vertices));

            collider.setCollisionCategories(CollisionSetting.wallCategory);


            trigger = addComponent <SceneObjectTriggerComponent>();
            trigger.setRadius(10)
            .setIsSensor(true);
            trigger.setCollisionCategories(CollisionSetting.ItemsCategory);
            trigger.setCollidesWith(CollisionSetting.playerCategory);

            trigger.onAdded += onAddedMethod;
        }
Beispiel #3
0
        public override void onAddedToScene()
        {
            var texture      = scene.content.Load <Texture2D>("TileMaps/MapTextures/objects");
            var subtexture1  = new Subtexture(texture, new Rectangle(64, 48, 16, 16));
            var subtexture2  = new Subtexture(texture, new Rectangle(64 + 16, 48, 16, 16));
            var subtexture3  = new Subtexture(texture, new Rectangle(64 + 16 * 2, 48, 16, 16));
            var subtexture4  = new Subtexture(texture, new Rectangle(64 + 16 * 3, 48, 16, 16));
            var subtexture5  = new Subtexture(texture, new Rectangle(64 + 16 * 4, 48, 16, 16));
            var subtexture6  = new Subtexture(texture, new Rectangle(64 + 16 * 5, 48, 16, 16));
            var subtexture7  = new Subtexture(texture, new Rectangle(64 + 16 * 6, 48, 16, 16));
            var subtexture8  = new Subtexture(texture, new Rectangle(64 + 16 * 7, 48, 16, 16));
            var subtexture9  = new Subtexture(texture, new Rectangle(64 + 16 * 8, 48, 16, 16));
            var subtexture10 = new Subtexture(texture, new Rectangle(64 + 16 * 9, 48, 16, 16));
            var subtexture11 = new Subtexture(texture, new Rectangle(64 + 16 * 10, 48, 16, 16));

            animations = addComponent(new Sprite <FireAnimation>(subtexture11));
            animations.addAnimation(FireAnimation.Init, new SpriteAnimation(new List <Subtexture>()
            {
                subtexture11,
                subtexture10,
                subtexture9,
                subtexture8,
            })
            {
            });

            animations.addAnimation(FireAnimation.Fire, new SpriteAnimation(new List <Subtexture>()
            {
                subtexture7,
                subtexture6,
                subtexture5,
                subtexture4,
                subtexture3,
                subtexture2,
                subtexture1,
            })
            {
                loop = false
            });

            animations.onAnimationCompletedEvent += Animations_onAnimationCompletedEvent;

            addComponent <FSRigidBody>()
            .setBodyType(BodyType.Dynamic);

            trigger = addComponent <SceneObjectTriggerComponent>();
            trigger.setRadius(5).setIsSensor(true);

            trigger.setCollisionCategories(CollisionSetting.enemyAttackCategory);
            trigger.setCollidesWith(CollisionSetting.unableColliderCategory);

            trigger.onAdded += () =>
            {
                trigger.GetFixture().onCollision += (fixtureA, fixtureB, contact) =>
                {
                    var component = fixtureB.userData as Component;

                    var actorProperty = component.getComponent <ActorPropertyComponent>();
                    if (actorProperty != null)
                    {
                        actorProperty.executeDamage?.Invoke(AttackTypes.Physics, 8);
                        //var adir = component.entity.position - this.position;
                        //adir.Normalize();
                        //actorProperty.entity.getComponent<FSRigidBody>().body.applyLinearImpulse(adir * FSConvert.displayToSim);
                    }

                    return(true);
                };
            };
        }