예제 #1
0
		public TetrisAttack()
		{
			graphics = new GraphicsDeviceManager(this);
			graphics.PreferredBackBufferHeight = 405;
			graphics.PreferredBackBufferWidth = 459;
			Content.RootDirectory = "Content";
			board = Board.BuildNewBoard();
			Components.Add(backgroundComponent = new BackgroundComponent(this, themeName));
			Components.Add(frameComponent = new FrameComponent(this, themeName));
			Components.Add(blockComponent = new BlockComponent(this, board));
			Components.Add(cursorComponent = new CursorComponent(this, board));
			Components.Add(textComponent = new TextComponent(this, board));
		}
예제 #2
0
    /// <summary>
    /// Deserializes all components from a string
    /// </summary>
    /// <param name="p"></param>
    private void DeserializeComponents(string p)
    {
        StringReader reader = new StringReader(p);
        int          length = reader.ReadInt();

        for (int i = 0; i < length; i++)
        {
            string typeString = reader.ReadString();
            Type   type       = Type.GetType(typeString);

            FrameComponent component = (FrameComponent)GetComponent(type);
            component.ReadData(reader);
        }
    }
예제 #3
0
    protected virtual void drawGizmos()
    {
        if (mFrameComponentUpdate == null)
        {
            return;
        }
        int count = mFrameComponentUpdate.Count;

        for (int i = 0; i < count; ++i)
        {
            // 因为在更新过程中也可能销毁所有组件,所以需要每次循环都要判断
            if (mFrameComponentUpdate == null)
            {
                return;
            }
            FrameComponent component = mFrameComponentUpdate[i];
            if (component != null && !component.mDestroy)
            {
                component.onDrawGizmos();
            }
        }
    }
예제 #4
0
    protected virtual void lateUpdate(float elapsedTime)
    {
        if (mFrameComponentUpdate == null)
        {
            return;
        }
        int count = mFrameComponentUpdate.Count;

        for (int i = 0; i < count; ++i)
        {
            // 因为在更新过程中也可能销毁所有组件,所以需要每次循环都要判断
            if (mFrameComponentUpdate == null)
            {
                return;
            }
            FrameComponent component = mFrameComponentUpdate[i];
            if (component != null && !component.mDestroy)
            {
                component.lateUpdate(elapsedTime);
            }
        }
    }
예제 #5
0
    protected virtual void fixedUpdate(float elapsedTime)
    {
        if (mFrameComponentUpdate == null)
        {
            return;
        }
        int count = mFrameComponentUpdate.Count;

        for (int i = 0; i < count; ++i)
        {
            // 因为在更新过程中也可能销毁所有组件,所以需要每次循环都要判断
            if (mFrameComponentUpdate == null)
            {
                return;
            }
            FrameComponent component = mFrameComponentUpdate[i];
            if (component != null && !component.mDestroy)
            {
                UnityProfiler.BeginSample(component.getName());
                component.fixedUpdate(elapsedTime);
                UnityProfiler.EndSample();
            }
        }
    }
예제 #6
0
        public Window cheaterWindow()
        {
            Window window = new Window(2, 1);

            window.padding_ = new Vector2(5, 0);
            Text text = new Text("Inventory", true);

            text.centerY = false;
            window.set(0, 0, text);
            FrameComponent buttonframe = new FrameComponent(2, 10);

            window.set(1, 0, buttonframe);

            int    num = 0;
            Button button;

            button           = new Button(Locator.getTextureManager().loadTexture("gun64"), PostCategory.PLACING_OBJECT);
            button.getTarget = Locator.getObjectFactory().createGun;
            button.slot_     = num;
            buttonframe.set(0, num++, button);

            button           = new Button(Locator.getTextureManager().loadTexture("mag128"), PostCategory.PLACING_OBJECT);
            button.getTarget = Locator.getObjectFactory().createTractor;
            button.slot_     = num;
            buttonframe.set(0, num++, button);

            button           = new Button(Locator.getTextureManager().loadTexture("furnace"), PostCategory.PLACING_OBJECT);
            button.getTarget = Locator.getObjectFactory().createFurnace;
            button.slot_     = num;
            buttonframe.set(0, num++, button);

            button           = new Button(Locator.getTextureManager().loadTexture("tank"), PostCategory.PLACING_OBJECT);
            button.getTarget = Locator.getObjectFactory().createTank;
            button.slot_     = num;
            buttonframe.set(0, num++, button);

            button           = new Button(Locator.getTextureManager().loadTexture("cchamber"), PostCategory.PLACING_OBJECT);
            button.getTarget = Locator.getObjectFactory().createCombChamb;
            button.slot_     = num;
            buttonframe.set(0, num++, button);

            button           = new Button(Locator.getTextureManager().loadTexture("compressor"), PostCategory.PLACING_OBJECT);
            button.getTarget = Locator.getObjectFactory().createCompressor;
            button.slot_     = num;
            buttonframe.set(0, num++, button);

            button           = new Button(Locator.getTextureManager().loadTexture("pump"), PostCategory.PLACING_OBJECT);
            button.getTarget = Locator.getObjectFactory().createPump;
            button.slot_     = num;
            buttonframe.set(0, num++, button);

            button           = new Button(Locator.getTextureManager().loadTexture("thrust"), PostCategory.PLACING_OBJECT);
            button.getTarget = Locator.getObjectFactory().createThruster;
            button.slot_     = num;
            buttonframe.set(0, num++, button);

            button           = new Button(Locator.getTextureManager().loadTexture("reactor"), PostCategory.PLACING_OBJECT);
            button.getTarget = Locator.getObjectFactory().createReactor;
            buttonframe.set(0, num++, button);

            for (int i = num; i < 10; ++i)
            {
                button       = new Button(Locator.getTextureManager().loadTexture("tile32"), PostCategory.PLACED_ITEM);
                button.slot_ = num;
                buttonframe.set(0, i, button);
            }

            for (int i = 0; i < 10; ++i)
            {
                Text label = new Text("" + ((i + 1) % 10), false);
                buttonframe.set(1, i, label);
            }

            buttonframe.padding_ = new Vector2(5, 0);
            window.pack();
            window.loc_ = new Vector2((screen_.X - window.size.X) / 2f, screen_.Y - window.size.Y);
            return(window);
        }
예제 #7
0
 // a小于b返回-1, a等于b返回0, a大于b返回1,升序排序
 static public int compareDestroy(FrameComponent a, FrameComponent b)
 {
     return(sign(a.mDestroyOrder - b.mDestroyOrder));
 }
예제 #8
0
 // a小于b返回-1, a等于b返回0, a大于b返回1,升序排序
 static public int compareUpdate(FrameComponent a, FrameComponent b)
 {
     return(sign(a.mUpdateOrder - b.mUpdateOrder));
 }
예제 #9
0
 // a小于b返回-1, a等于b返回0, a大于b返回1,升序排序
 static public int compareInit(FrameComponent a, FrameComponent b)
 {
     return(sign(a.mInitOrder - b.mInitOrder));
 }