Exemple #1
0
        public bool checkWalkable(int x, int y, DGlobal.MapOrientations orientation)
        {
            foreach (DCharacter characterTMP in this.mCharacters)
            {
                if (characterTMP.getPositionX() == x && characterTMP.getPositionY() == y)
                {
                    return(false);
                }
            }

            if (x < this.mWidth && x >= 0 && y < this.mHeight && y >= 0)
            {
                if (this.mMapData[x, y, (int)orientation] == 0)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
Exemple #2
0
        public void draw(int x, int y, DGlobal.MapOrientations lookOrientation)
        {
            this.drawTile(x, y, DGlobal.MapDistances.END, DGlobal.MapPositions.CENTER, lookOrientation);
            this.drawTile(x, y, DGlobal.MapDistances.END, DGlobal.MapPositions.LEFT1, lookOrientation);
            this.drawTile(x, y, DGlobal.MapDistances.END, DGlobal.MapPositions.LEFT2, lookOrientation);
            this.drawTile(x, y, DGlobal.MapDistances.END, DGlobal.MapPositions.RIGHT1, lookOrientation);
            this.drawTile(x, y, DGlobal.MapDistances.END, DGlobal.MapPositions.RIGHT2, lookOrientation);

            this.drawTile(x, y, DGlobal.MapDistances.FAR, DGlobal.MapPositions.CENTER, lookOrientation);
            this.drawTile(x, y, DGlobal.MapDistances.FAR, DGlobal.MapPositions.LEFT1, lookOrientation);
            this.drawTile(x, y, DGlobal.MapDistances.END, DGlobal.MapPositions.LEFT2, lookOrientation);
            this.drawTile(x, y, DGlobal.MapDistances.FAR, DGlobal.MapPositions.RIGHT1, lookOrientation);
            this.drawTile(x, y, DGlobal.MapDistances.END, DGlobal.MapPositions.RIGHT2, lookOrientation);

            this.drawTile(x, y, DGlobal.MapDistances.MID, DGlobal.MapPositions.CENTER, lookOrientation);
            this.drawTile(x, y, DGlobal.MapDistances.MID, DGlobal.MapPositions.LEFT1, lookOrientation);
            this.drawTile(x, y, DGlobal.MapDistances.MID, DGlobal.MapPositions.LEFT2, lookOrientation);
            this.drawTile(x, y, DGlobal.MapDistances.MID, DGlobal.MapPositions.RIGHT1, lookOrientation);
            this.drawTile(x, y, DGlobal.MapDistances.MID, DGlobal.MapPositions.RIGHT2, lookOrientation);

            this.drawTile(x, y, DGlobal.MapDistances.NEAR, DGlobal.MapPositions.CENTER, lookOrientation);
            this.drawTile(x, y, DGlobal.MapDistances.NEAR, DGlobal.MapPositions.LEFT1, lookOrientation);
            this.drawTile(x, y, DGlobal.MapDistances.NEAR, DGlobal.MapPositions.LEFT2, lookOrientation);
            this.drawTile(x, y, DGlobal.MapDistances.NEAR, DGlobal.MapPositions.RIGHT1, lookOrientation);
            this.drawTile(x, y, DGlobal.MapDistances.NEAR, DGlobal.MapPositions.RIGHT2, lookOrientation);

            this.drawTile(x, y, DGlobal.MapDistances.NONE, DGlobal.MapPositions.CENTER, lookOrientation);
            this.drawTile(x, y, DGlobal.MapDistances.NONE, DGlobal.MapPositions.LEFT1, lookOrientation);
            this.drawTile(x, y, DGlobal.MapDistances.NONE, DGlobal.MapPositions.LEFT2, lookOrientation);
            this.drawTile(x, y, DGlobal.MapDistances.NONE, DGlobal.MapPositions.RIGHT1, lookOrientation);
            this.drawTile(x, y, DGlobal.MapDistances.NONE, DGlobal.MapPositions.RIGHT2, lookOrientation);
        }
Exemple #3
0
        public override void initialize()
        {
            x = 1;
            y = 7;

            orientation = DGlobal.MapOrientations.NORTH;

            map = new DMap(this.mApp.graphics);
            map.loadMap("TestMap");

            DCharacter testCharacter = new DCharacter(this.mApp.graphics);

            testCharacter.loadCharacter("Goblin");
            testCharacter.setPosition(1, 2);
            map.addCharacter(testCharacter);

            testCharacter = new DCharacter(this.mApp.graphics);
            testCharacter.loadCharacter("Goblin");
            testCharacter.setPosition(2, 4);
            map.addCharacter(testCharacter);

            testCharacter = new DCharacter(this.mApp.graphics);
            testCharacter.loadCharacter("Goblin");
            testCharacter.setPosition(3, 6);
            testCharacter.setRightArmEquipped(true);
            map.addCharacter(testCharacter);
        }
Exemple #4
0
        public override void update(SDL.SDL_Event eventSDL)
        {
            int posX = this.x;
            int posY = this.y;

            DGlobal.MapOrientations orientation = this.orientation;

            if (eventSDL.type == SDL.SDL_EventType.SDL_KEYDOWN)
            {
                switch (eventSDL.key.keysym.sym)
                {
                case SDL.SDL_Keycode.SDLK_UP:
                    if (this.map.checkWalkable(posX, posY, orientation))
                    {
                        DGlobal.moveForward(orientation, ref posX, ref posY, 1);
                        DGlobal.turnBack(ref orientation);
                        if (this.map.checkWalkable(posX, posY, orientation))
                        {
                            this.x = posX;
                            this.y = posY;
                        }
                    }
                    break;

                case SDL.SDL_Keycode.SDLK_DOWN:
                    DGlobal.turnBack(ref orientation);
                    if (this.map.checkWalkable(posX, posY, orientation))
                    {
                        DGlobal.turnBack(ref orientation);
                        DGlobal.moveBack(orientation, ref posX, ref posY, 1);
                        if (this.map.checkWalkable(posX, posY, orientation))
                        {
                            this.x = posX;
                            this.y = posY;
                        }
                    }
                    break;

                case SDL.SDL_Keycode.SDLK_LEFT:
                    DGlobal.turnLeft(ref this.orientation);
                    break;

                case SDL.SDL_Keycode.SDLK_RIGHT:
                    DGlobal.turnRight(ref this.orientation);
                    break;

                case SDL.SDL_Keycode.SDLK_ESCAPE:
                    this.mApp.quit();
                    break;
                }
            }

            int mouseX;
            int mouseY;

            SDL.SDL_GetMouseState(out mouseX, out mouseY);
            System.Console.WriteLine("Mouse X: " + mouseX + " Y: " + mouseY);
        }
Exemple #5
0
        private void drawTileOrientation(int x, int y, DGlobal.MapDistances distance, DGlobal.MapPositions position, DGlobal.MapOrientations orientation, DGlobal.MapOrientations lookOrientation)
        {
            int positionX = x;
            int positionY = y;

            DGlobal.MapOrientations drawingOrientation = orientation;

            switch (lookOrientation)
            {
            case DGlobal.MapOrientations.WEST:
                DGlobal.turnRight(ref drawingOrientation);
                break;

            case DGlobal.MapOrientations.EAST:
                DGlobal.turnLeft(ref drawingOrientation);
                break;

            case DGlobal.MapOrientations.SOUTH:
                DGlobal.turnBack(ref drawingOrientation);
                break;
            }

            switch (position)
            {
            case DGlobal.MapPositions.RIGHT1:
                DGlobal.moveRight(lookOrientation, ref positionX, ref positionY, 1);
                break;

            case DGlobal.MapPositions.RIGHT2:
                DGlobal.moveRight(lookOrientation, ref positionX, ref positionY, 2);
                break;

            case DGlobal.MapPositions.LEFT1:
                DGlobal.moveLeft(lookOrientation, ref positionX, ref positionY, 1);
                break;

            case DGlobal.MapPositions.LEFT2:
                DGlobal.moveLeft(lookOrientation, ref positionX, ref positionY, 2);
                break;
            }

            DGlobal.moveForward(lookOrientation, ref positionX, ref positionY, (int)distance);

            if (positionX >= 0 && positionX < this.mWidth && positionY >= 0 && positionY < this.mHeight)
            {
                if (this.mMapData[positionX, positionY, (int)orientation] > 0 && this.mTileset[(this.mMapData[positionX, positionY, (int)orientation]) - 1, (int)distance, (int)position, (int)drawingOrientation] != null)
                {
                    this.mGraphics.drawImage(this.mTileset[(this.mMapData[positionX, positionY, (int)orientation]) - 1, (int)distance, (int)position, (int)drawingOrientation]);
                }
            }
        }
Exemple #6
0
        private void drawTile(int x, int y, DGlobal.MapDistances distance, DGlobal.MapPositions position, DGlobal.MapOrientations lookOrientation)
        {
            DGlobal.MapOrientations orientation = lookOrientation;

            if (position == DGlobal.MapPositions.CENTER)
            {
                this.drawTileOrientation(x, y, distance, position, orientation, lookOrientation);
                DGlobal.turnLeft(ref orientation);
                this.drawTileOrientation(x, y, distance, position, orientation, lookOrientation);
                DGlobal.turnRight(ref orientation);
                DGlobal.turnRight(ref orientation);
                this.drawTileOrientation(x, y, distance, position, orientation, lookOrientation);
                this.drawTileOrientation(x, y, distance, position, DGlobal.MapOrientations.FLOOR, lookOrientation);
                this.drawTileOrientation(x, y, distance, position, DGlobal.MapOrientations.CEIL, lookOrientation);
                this.drawCharacter(x, y, distance, position, lookOrientation);
                DGlobal.turnRight(ref orientation);
                this.drawTileOrientation(x, y, distance, position, orientation, lookOrientation);
            }
            else if (position == DGlobal.MapPositions.RIGHT1 || position == DGlobal.MapPositions.RIGHT2)
            {
                this.drawTileOrientation(x, y, distance, position, orientation, lookOrientation);
                DGlobal.turnRight(ref orientation);
                this.drawTileOrientation(x, y, distance, position, orientation, lookOrientation);
                DGlobal.turnRight(ref orientation);
                this.drawTileOrientation(x, y, distance, position, orientation, lookOrientation);
                this.drawTileOrientation(x, y, distance, position, DGlobal.MapOrientations.FLOOR, lookOrientation);
                this.drawTileOrientation(x, y, distance, position, DGlobal.MapOrientations.CEIL, lookOrientation);
                this.drawCharacter(x, y, distance, position, lookOrientation);
                DGlobal.turnRight(ref orientation);
                this.drawTileOrientation(x, y, distance, position, orientation, lookOrientation);
            }
            else if (position == DGlobal.MapPositions.LEFT1 || position == DGlobal.MapPositions.LEFT2)
            {
                this.drawTileOrientation(x, y, distance, position, orientation, lookOrientation);
                DGlobal.turnLeft(ref orientation);
                this.drawTileOrientation(x, y, distance, position, orientation, lookOrientation);
                DGlobal.turnLeft(ref orientation);
                this.drawTileOrientation(x, y, distance, position, orientation, lookOrientation);
                this.drawTileOrientation(x, y, distance, position, DGlobal.MapOrientations.FLOOR, lookOrientation);
                this.drawTileOrientation(x, y, distance, position, DGlobal.MapOrientations.CEIL, lookOrientation);
                this.drawCharacter(x, y, distance, position, lookOrientation);
                DGlobal.turnLeft(ref orientation);
                this.drawTileOrientation(x, y, distance, position, orientation, lookOrientation);
            }
        }
Exemple #7
0
        public static void moveRight(DGlobal.MapOrientations orientation, ref int x, ref int y, int distance)
        {
            switch (orientation)
            {
            case DGlobal.MapOrientations.NORTH:
                x += distance;
                break;

            case DGlobal.MapOrientations.EAST:
                y += distance;
                break;

            case DGlobal.MapOrientations.SOUTH:
                x -= distance;
                break;

            case DGlobal.MapOrientations.WEST:
                y -= distance;
                break;
            }
        }
Exemple #8
0
        public static void turnBack(ref DGlobal.MapOrientations orientation)
        {
            switch (orientation)
            {
            case MapOrientations.NORTH:
                orientation = MapOrientations.SOUTH;
                break;

            case MapOrientations.EAST:
                orientation = MapOrientations.WEST;
                break;

            case MapOrientations.SOUTH:
                orientation = MapOrientations.NORTH;
                break;

            case MapOrientations.WEST:
                orientation = MapOrientations.EAST;
                break;
            }
        }
Exemple #9
0
        private void drawCharacter(int x, int y, DGlobal.MapDistances distance, DGlobal.MapPositions position, DGlobal.MapOrientations lookOrientation)
        {
            DCharacter character = null;

            int positionX = x;
            int positionY = y;

            switch (position)
            {
            case DGlobal.MapPositions.RIGHT1:
                DGlobal.moveRight(lookOrientation, ref positionX, ref positionY, 1);
                break;

            case DGlobal.MapPositions.RIGHT2:
                DGlobal.moveRight(lookOrientation, ref positionX, ref positionY, 2);
                break;

            case DGlobal.MapPositions.LEFT1:
                DGlobal.moveLeft(lookOrientation, ref positionX, ref positionY, 1);
                break;

            case DGlobal.MapPositions.LEFT2:
                DGlobal.moveLeft(lookOrientation, ref positionX, ref positionY, 2);
                break;
            }

            DGlobal.moveForward(lookOrientation, ref positionX, ref positionY, (int)distance);

            foreach (DCharacter characterTMP in this.mCharacters)
            {
                if (characterTMP.getPositionX() == positionX && characterTMP.getPositionY() == positionY)
                {
                    character = characterTMP;
                    break;
                }
            }

            if (character != null)
            {
                character.draw(distance, position);
            }
        }
Exemple #10
0
        private string buildImageFullPath(string assetName, DGlobal.MapDistances distance, DGlobal.MapPositions position, DGlobal.MapOrientations orientation)
        {
            string imageFullPath;

            imageFullPath = "data/img/tiles/" + assetName + "_" + DGlobal.mapDistanceToString(distance) + "_" + DGlobal.mapPositionToString(position) + "_" + DGlobal.mapOrientationToString(orientation) + ".png";

            return(imageFullPath);
        }