Esempio n. 1
0
        // method adding observer to a game object
        public void AddObserver(Subject.Name name, GameObject go)
        {
            Observer raw = (Observer)this.PullFromReserved();

            // adding derived observer based on name
            if (name == Subject.Name.LeftKey || name == Subject.Name.RightKey)
            {
                // for left key and right key event
                // create a move observer to listen
                MoveObserver mo = (MoveObserver)raw;
                mo.set(name, (MoveProxy)go.pProxy); // downcasting dangerous

                // Add new observer to the list
                this.Add(mo);
            }
        }
Esempio n. 2
0
        // Subscribe game object to subject
        public void Subscribe(GameObject go)
        {
            // TODO: add null observer
            Observer obs = null;

            // adding derived observer based on name
            if (name == Subject.Name.LeftKey || name == Subject.Name.RightKey)
            {
                // for left key and right key event
                // create a move observer to listen
                obs = new MoveObserver();
                ((MoveObserver)obs).set(name, (MoveProxy)go.pProxy);
            }
            else if (name == Name.SpaceKey)
            {
                // for space key, create a shoot observer
                obs = new ShootObserver();
            }

            // Add new observer to the list
            this.AddObserver(obs);
        }