本文整理汇总了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];
}
}
示例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;
}
}
}
示例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() );
}
示例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;
}
}
}
}
示例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 );
}
}
}
示例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 );
}
示例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;
}
}
}
示例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;
}
}
示例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 );
}
示例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;
}
}
}
}
示例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;
}
}
}
示例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;
}
}
示例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));
}
}
}
}
示例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);
}
示例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);
}
}
}