コード例 #1
0
        public void accessObject(LLESprite playerCharacter, KeyboardState keyboardState, KeyboardState prevKeyboardState)
        {
            mPlayerCharacter = playerCharacter;

            if (playerCharacter != null && (playerCharacter.getDirection() == LLESprite.DIRECTION_UP || playerCharacter.getDirection() == LLESprite.DIRECTION_LEFT_UP || playerCharacter.getDirection() == LLESprite.DIRECTION_RIGHT_UP)

                && keyboardState.IsKeyDown(Keys.Z) == true && prevKeyboardState.IsKeyDown(Keys.Z) == false)
            {
                for (int i = 0; i < mapObjects.Count; i++)
                {
                    if (mapObjects[i] != null && mapObjects[i].getSprite() != null)
                    {
                        LLESprite target = mapObjects[i].getSprite();

                        if (playerCharacter.isCollidingMap(new Vector4(target.getX(), target.getY(), target.getHeight(), target.getWidth()), new Vector2(cameraX, cameraY), false, true, 4) == true)
                        {
                            scriptProcessor.extractObjectVariables(mapObjects[i]);

                            attack = false;

                            break;
                        }
                    }
                }
            }
        }
コード例 #2
0
        public void tryDestroyObjects(LLESprite playerCharacter)
        {
            for (int i = 0; i < mapObjects.Count; i++)
            {
                bool collided = playerCharacter.isCollidingMap(new Vector4(mapObjects[i].getSprite().getX(), mapObjects[i].getSprite().getY(), mapObjects[i].getSprite().getHeight(), mapObjects[i].getSprite().getWidth()), new Vector2(cameraX, cameraY), true, true, 1);

                if (mapObjects[i].isDestroyable() == true && collided == true)
                {
                    mapObjects[i].release();

                    mapObjects[i] = null;

                    mapObjects.RemoveAt(i);

                    i = -1;
                }
            }
        }
コード例 #3
0
        public int checkWarpCollision(LLESprite playerCharacter)
        {
            List<LLEWarpBox> rectangles = warpBoxes;

            for (int i = 0; i < rectangles.Count; i++)
            {
                if (playerCharacter.isCollidingMap(new Vector4(rectangles[i].mX, rectangles[i].mY, rectangles[i].mHeight, rectangles[i].mWidth), new Vector2(cameraX, cameraY), true, true, 4) == true)
                {
                    return i;
                }
            }

            return -1;
        }
コード例 #4
0
        public void checkObjectCollision(LLESprite playerCharacter, LLEPlayerData playerData, KeyboardState keyboardState, KeyboardState prevKeyboardState)
        {
            mPlayerCharacter = playerCharacter;

            for (int i = 0; i < mapObjects.Count; i++)
            {
                if (mapObjects[i] != null && mapObjects[i].getSprite() != null && mapObjects[i].getSprite().isVisible())
                {
                    LLESprite target = mapObjects[i].getSprite();

                    if (mapObjects[i].isColliding() == true && playerCharacter.isCollidingMap(new Vector4(target.getX(), target.getY(), target.getHeight(), target.getWidth()), new Vector2(cameraX, cameraY), true, true, 4) == true)
                    {
                        if ((playerCharacter.getDirection() == LLESprite.DIRECTION_UP || playerCharacter.getDirection() == LLESprite.DIRECTION_LEFT_UP || playerCharacter.getDirection() == LLESprite.DIRECTION_RIGHT_UP)

                            && keyboardState.IsKeyDown(Keys.Z) == true && prevKeyboardState.IsKeyDown(Keys.Z) == false)
                        {
                            if (mapObjects[i].getScriptName().Replace("NONE", "" ).Replace(" ", "") != "")
                            {
                                playerCharacter.setAttacking(false);

                                scriptProcessor.extractObjectVariables(mapObjects[i]);

                                scriptProcessor.executeScript(msgManager, playerData);
                            }

                            break;
                        }
                    }
                }
            }
        }
コード例 #5
0
        public void checkBoxCollision(LLESprite playerCharacter)
        {
            List<LLERect> rectangles = collisionBoxes;

            for (int i = 0; i < rectangles.Count; i++)
            {
                if (rectangles[i] != null && playerCharacter != null)
                {
                    playerCharacter.isCollidingMap(new Vector4(rectangles[i].mX, rectangles[i].mY, rectangles[i].mHeight, rectangles[i].mWidth), new Vector2(cameraX, cameraY), true, true, 4);
                }
            }
        }