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); } }
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); }
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); }
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); }
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]); } } }
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); } }
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; } }
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; } }
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); } }
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); }