当前位置: 首页>>代码示例>>Java>>正文


Java Terrain类代码示例

本文整理汇总了Java中com.watabou.pixeldungeon.levels.Terrain的典型用法代码示例。如果您正苦于以下问题:Java Terrain类的具体用法?Java Terrain怎么用?Java Terrain使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


Terrain类属于com.watabou.pixeldungeon.levels包,在下文中一共展示了Terrain类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: move

import com.watabou.pixeldungeon.levels.Terrain; //导入依赖的package包/类
public void move( int step ) {
	
	if (Level.adjacent( step, pos ) && buff( Vertigo.class ) != null) {
		step = pos + Level.NEIGHBOURS8[Random.Int( 8 )];
		if (!(Level.passable[step] || Level.avoid[step]) || Actor.findChar( step ) != null) {
			return;
		}
	}
	
	if (Dungeon.level.map[pos] == Terrain.OPEN_DOOR) {
		Door.leave( pos );
	}
	
	pos = step;
	
	if (flying && Dungeon.level.map[pos] == Terrain.DOOR) {
		Door.enter( pos );
	}
	
	if (this != Dungeon.hero) {
		sprite.visible = Dungeon.visible[pos];
	}
}
 
开发者ID:kurtyu,项目名称:PixelDungeonTC,代码行数:24,代码来源:Char.java

示例2: affectCell

import com.watabou.pixeldungeon.levels.Terrain; //导入依赖的package包/类
public static void affectCell( int cell ) {
	
	Class<?>[] waters = {WaterOfHealth.class, WaterOfAwareness.class, WaterOfTransmutation.class};
	
	for (Class<?>waterClass : waters) {
		WellWater water = (WellWater)Dungeon.level.blobs.get( waterClass );
		if (water != null && 
			water.volume > 0 && 
			water.pos == cell && 
			water.affect()) {
			
			Level.set( cell, Terrain.EMPTY_WELL );
			GameScene.updateMap( cell );
			
			return;
		}
	}
}
 
开发者ID:kurtyu,项目名称:PixelDungeonTC,代码行数:19,代码来源:WellWater.java

示例3: paint

import com.watabou.pixeldungeon.levels.Terrain; //导入依赖的package包/类
public static void paint( Level level, Room room ) {
	
	final int floor = Terrain.EMPTY_SP;
	
	fill( level, room, Terrain.WALL );
	fill( level, room, 1, floor );
	
	int n = Random.IntRange( 3, 4 );
	for (int i=0; i < n; i++) {
		int pos;
		do {
			pos = room.random();
		} while (level.map[pos] != floor);
		level.drop( prize( level ), pos );
	}
	
	room.entrance().set( Room.Door.Type.BARRICADE );
	level.addItemToSpawn( new PotionOfLiquidFlame() );
}
 
开发者ID:kurtyu,项目名称:PixelDungeonTC,代码行数:20,代码来源:StoragePainter.java

示例4: placeShopkeeper

import com.watabou.pixeldungeon.levels.Terrain; //导入依赖的package包/类
private static void placeShopkeeper( Level level, Room room ) {
	
	int pos;
	do {
		pos = room.random();
	} while (level.heaps.get( pos ) != null);
	
	Mob shopkeeper = level instanceof LastShopLevel ? new ImpShopkeeper() : new Shopkeeper();
	shopkeeper.pos = pos;
	level.mobs.add( shopkeeper );
	
	if (level instanceof LastShopLevel) {
		for (int i=0; i < Level.NEIGHBOURS9.length; i++) {
			int p = shopkeeper.pos + Level.NEIGHBOURS9[i];
			if (level.map[p] == Terrain.EMPTY_SP) {
				level.map[p] = Terrain.WATER;
			}
		}
	}
}
 
开发者ID:kurtyu,项目名称:PixelDungeonTC,代码行数:21,代码来源:ShopPainter.java

示例5: paint

import com.watabou.pixeldungeon.levels.Terrain; //导入依赖的package包/类
public static void paint( Level level, Room room ) {
	
	fill( level, room, Terrain.WALL );
	fill( level, room, 1, Terrain.CHASM );
	
	Room.Door door = room.entrance(); 
	door.set( Room.Door.Type.REGULAR );
	
	if (door.x == room.left) {
		for (int i=room.top + 1; i < room.bottom; i++) {
			drawInside( level, room, new Point( room.left, i ), Random.IntRange( 1, room.width() - 2 ), Terrain.EMPTY_SP );
		}
	} else if (door.x == room.right) {
		for (int i=room.top + 1; i < room.bottom; i++) {
			drawInside( level, room, new Point( room.right, i ), Random.IntRange( 1, room.width() - 2 ), Terrain.EMPTY_SP );
		}
	} else if (door.y == room.top) {
		for (int i=room.left + 1; i < room.right; i++) {
			drawInside( level, room, new Point( i, room.top ), Random.IntRange( 1, room.height() - 2 ), Terrain.EMPTY_SP );
		}
	} else if (door.y == room.bottom) {
		for (int i=room.left + 1; i < room.right; i++) {
			drawInside( level, room, new Point( i, room.bottom ), Random.IntRange( 1, room.height() - 2 ), Terrain.EMPTY_SP );
		}
	}
}
 
开发者ID:kurtyu,项目名称:PixelDungeonTC,代码行数:27,代码来源:WeakFloorPainter.java

示例6: paint

import com.watabou.pixeldungeon.levels.Terrain; //导入依赖的package包/类
public static void paint( Level level, Room room ) {

		fill( level, room, Terrain.WALL );
		fill( level, room, 1, Terrain.EMPTY );
		
		Point c = room.center();
		set( level, c.x, c.y, Terrain.WELL );
		
		@SuppressWarnings("unchecked")
		Class<? extends WellWater> waterClass = 
			(Class<? extends WellWater>)Random.element( WATERS );
		
		WellWater water = (WellWater)level.blobs.get( waterClass );
		if (water == null) {
			try {
				water = waterClass.newInstance();
			} catch (Exception e) {
				water = null;
			}
		}
		water.seed( c.x + Level.WIDTH * c.y, 1 );
		level.blobs.put( waterClass, water );
		
		room.entrance().set( Room.Door.Type.REGULAR );
	}
 
开发者ID:kurtyu,项目名称:PixelDungeonTC,代码行数:26,代码来源:MagicWellPainter.java

示例7: paintBurned

import com.watabou.pixeldungeon.levels.Terrain; //导入依赖的package包/类
private static void paintBurned( Level level, Room room ) {
	for (int i=room.top + 1; i < room.bottom; i++) {
		for (int j=room.left + 1; j < room.right; j++) {
			int t = Terrain.EMBERS;
			switch (Random.Int( 5 )) {
			case 0:
				t = Terrain.EMPTY;
				break;
			case 1:
				t = Terrain.FIRE_TRAP;
				break;
			case 2:
				t = Terrain.SECRET_FIRE_TRAP;
				break;
			case 3:
				t = Terrain.INACTIVE_TRAP;
				break;
			}
			level.map[i * Level.WIDTH + j] = t;
		}
	}
}
 
开发者ID:kurtyu,项目名称:PixelDungeonTC,代码行数:23,代码来源:StandardPainter.java

示例8: paintGraveyard

import com.watabou.pixeldungeon.levels.Terrain; //导入依赖的package包/类
private static void paintGraveyard( Level level, Room room ) {
	fill( level, room.left + 1, room.top + 1, room.width() - 1, room.height() - 1 , Terrain.GRASS );
	
	int w = room.width() - 1;
	int h = room.height() - 1;
	int nGraves = Math.max( w, h ) / 2;
	
	int index = Random.Int( nGraves );
	
	int shift = Random.Int( 2 );
	for (int i=0; i < nGraves; i++) {
		int pos = w > h ?
			room.left + 1 + shift + i * 2 + (room.top + 2 + Random.Int( h-2 )) * Level.WIDTH :
			(room.left + 2 + Random.Int( w-2 )) + (room.top + 1 + shift + i * 2) * Level.WIDTH;	
		level.drop( i == index ? Generator.random() : new Gold(), pos ).type = Heap.Type.TOMB;
	}
}
 
开发者ID:kurtyu,项目名称:PixelDungeonTC,代码行数:18,代码来源:StandardPainter.java

示例9: paintStudy

import com.watabou.pixeldungeon.levels.Terrain; //导入依赖的package包/类
private static void paintStudy( Level level, Room room ) {
	fill( level, room.left + 1, room.top + 1, room.width() - 1, room.height() - 1 , Terrain.BOOKSHELF );
	fill( level, room.left + 2, room.top + 2, room.width() - 3, room.height() - 3 , Terrain.EMPTY_SP );
	
	for (Point door : room.connected.values()) {
		if (door.x == room.left) {
			set( level, door.x + 1, door.y, Terrain.EMPTY );
		} else if (door.x == room.right) {
			set( level, door.x - 1, door.y, Terrain.EMPTY );
		} else if (door.y == room.top) {
			set( level, door.x, door.y + 1, Terrain.EMPTY );
		} else if (door.y == room.bottom) {
			set( level, door.x , door.y - 1, Terrain.EMPTY );
		}	
	}
	
	set( level, room.center(), Terrain.PEDESTAL );
}
 
开发者ID:kurtyu,项目名称:PixelDungeonTC,代码行数:19,代码来源:StandardPainter.java

示例10: placeShopkeeper

import com.watabou.pixeldungeon.levels.Terrain; //导入依赖的package包/类
private static void placeShopkeeper( Level level, Room room ) {
	
	int pos;
	do {
		pos = room.random(level);
	} while (level.getHeap( pos ) != null);


	Mob shopkeeper = level instanceof LastShopLevel ? new ImpShopkeeper() : new Shopkeeper();
	if (Dungeon.depth == 27) {
		shopkeeper = new AzuterronNPC();
	}
	shopkeeper.setPos(pos);
	level.mobs.add( shopkeeper );
	
	if (level instanceof LastShopLevel) {
		for (int i=0; i < Level.NEIGHBOURS9.length; i++) {
			int p = shopkeeper.getPos() + Level.NEIGHBOURS9[i];
			if (level.map[p] == Terrain.EMPTY_SP) {
				level.map[p] = Terrain.WATER;
			}
		}
	}
}
 
开发者ID:NYRDS,项目名称:pixel-dungeon-remix,代码行数:25,代码来源:ShopPainter.java

示例11: paintBurned

import com.watabou.pixeldungeon.levels.Terrain; //导入依赖的package包/类
private static void paintBurned( Level level, Room room ) {
	for (int i=room.top + 1; i < room.bottom; i++) {
		for (int j=room.left + 1; j < room.right; j++) {
			int t = Terrain.EMBERS;
			switch (Random.Int( 5 )) {
			case 0:
				t = Terrain.EMPTY;
				break;
			case 1:
				t = Terrain.FIRE_TRAP;
				break;
			case 2:
				t = Terrain.SECRET_FIRE_TRAP;
				break;
			case 3:
				t = Terrain.INACTIVE_TRAP;
				break;
			}
			level.map[i * level.getWidth() + j] = t;
		}
	}
}
 
开发者ID:NYRDS,项目名称:pixel-dungeon-remix,代码行数:23,代码来源:StandardPainter.java

示例12: spawn

import com.watabou.pixeldungeon.levels.Terrain; //导入依赖的package包/类
public static void spawn( PrisonLevel level, Room room ) {
	if(room == null) {
		EventCollector.logException(new Exception(),EventCollector.BUG);
		return;
	}
	
	if (!spawned && Dungeon.depth > 6 && Random.Int( 10 - Dungeon.depth ) == 0) {
		
		WandMaker npc = new WandMaker();
		do {
			int cell = room.random(level);
			npc.setPos(cell);
		} while (level.map[npc.getPos()] == Terrain.ENTRANCE);
		level.mobs.add( npc );
		Actor.occupyCell( npc );
		
		spawned = true;
		alternative = Random.Int( 2 ) == 0;
		
		given = false;
	}
}
 
开发者ID:NYRDS,项目名称:pixel-dungeon-remix,代码行数:23,代码来源:WandMaker.java

示例13: paint

import com.watabou.pixeldungeon.levels.Terrain; //导入依赖的package包/类
public static void paint( Level level, Room room ) {

		fill( level, room, Terrain.WALL );
		fill( level, room, 1, Terrain.EMPTY_SP );
		
		Room.Door entrance = room.entrance();
		entrance.set( Room.Door.Type.HIDDEN );
		
		for (int i=room.left + 1; i < room.right; i++) {
			for (int j=room.top + 1; j < room.bottom; j++) {
				if(Math.random() < 0.5) {
					level.addLevelObject(new Barrel(level.cell(i, j)));
				} else {
					Item prize = Random.oneOf(Generator.random(Generator.Category.BULLETS),
							Generator.random(Generator.Category.THROWABLE));
					level.drop(prize, level.cell(i,j));
				}
			}
		}
	}
 
开发者ID:NYRDS,项目名称:pixel-dungeon-remix,代码行数:21,代码来源:WarehousePainter.java

示例14: paint

import com.watabou.pixeldungeon.levels.Terrain; //导入依赖的package包/类
public static void paint(Level level, Room room) {

		fill(level, room, 1, Terrain.EMPTY);

		for (Room.Door door : room.connected.values()) {
			door.set(Room.Door.Type.REGULAR);
		}

		int centerX = (room.left + room.right) / 2;
		int centerY = (room.top  + room.bottom) / 2;

		set(level,centerX-1,centerY,Terrain.WALL_DECO);
		set(level,centerX+1,centerY,Terrain.WALL_DECO);

		set(level,centerX-1, centerY-1,Terrain.WALL);
		set(level,centerX,   centerY-1,Terrain.WALL);
		set(level,centerX+1, centerY-1,Terrain.WALL);

		set(level,centerX-1, centerY+1,Terrain.WATER);
		set(level,centerX,   centerY+1,Terrain.WATER);
		set(level,centerX+1, centerY+1,Terrain.WATER);

		level.setExit(level.cell(centerX,centerY), 0);
		set(level, level.getExit(0), Terrain.LOCKED_EXIT);
	}
 
开发者ID:NYRDS,项目名称:pixel-dungeon-remix,代码行数:26,代码来源:SewerBossExitPainter.java

示例15: createTerrainMapping

import com.watabou.pixeldungeon.levels.Terrain; //导入依赖的package包/类
private static void createTerrainMapping() {
	if(terrainMapping.isEmpty()) {
		for (Field f : Terrain.class.getDeclaredFields()) {
			if (f.isSynthetic()) {
				continue;
			}
			int value;
			try {
				value = f.getInt(null);
			} catch (IllegalAccessException | IllegalArgumentException ignored) {
				continue;
			}
			String name = f.getName();

			terrainMapping.put(name, value);
		}
	}
}
 
开发者ID:NYRDS,项目名称:pixel-dungeon-remix,代码行数:19,代码来源:XTilemapConfiguration.java


注:本文中的com.watabou.pixeldungeon.levels.Terrain类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。