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


Java Terrain.DOOR属性代码示例

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


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

示例1: move

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,代码行数:23,代码来源:Char.java

示例2: build

@Override
protected boolean build() {

	Painter.fill( this, _Left(), TOP, HALL_WIDTH, HALL_HEIGHT, Terrain.EMPTY_SP );
	Painter.fill( this, _Left(), TOP, HALL_WIDTH, TOP, Terrain.EMPTY );
	Painter.fill( this, _Left(), HALL_HEIGHT, HALL_WIDTH, TOP, Terrain.EMPTY );
	for (int i = 0; i < 10; i++) {
		map[getRandomTerrainCell(Terrain.EMPTY_SP)] = Terrain.STATUE_SP;
	}
	
	arenaDoor = (TOP + HALL_HEIGHT) * getWidth() + _Center();
	map[arenaDoor] = Terrain.DOOR;
	
	Painter.fill( this, _Left(), TOP + HALL_HEIGHT + 1, HALL_WIDTH, CHAMBER_HEIGHT, Terrain.EMPTY );
	
	entrance = (TOP + HALL_HEIGHT + 2 + Random.Int( CHAMBER_HEIGHT - 1 )) * getWidth() + _Left() + (/*1 +*/ Random.Int( HALL_WIDTH-2 )); 
	map[entrance] = Terrain.ENTRANCE;
	setExit((TOP - 1) * getWidth() + _Center(),0);
	map[getExit(0)] = Terrain.LOCKED_EXIT;
	return true;
}
 
开发者ID:NYRDS,项目名称:pixel-dungeon-remix,代码行数:21,代码来源:IceCavesBossLevel.java

示例3: defenseProc

@Override
public int defenseProc( Char enemy, int damage ) {

	if (HP >= damage + 2) {
		ArrayList<Integer> candidates = new ArrayList<Integer>();
		boolean[] passable = Level.passable;
		
		int[] neighbours = {pos + 1, pos - 1, pos + Level.WIDTH, pos - Level.WIDTH};
		for (int n : neighbours) {
			if (passable[n] && Actor.findChar( n ) == null) {
				candidates.add( n );
			}
		}

		if (candidates.size() > 0) {
			
			Swarm clone = split();
			clone.HP = (HP - damage) / 2;
			clone.pos = Random.element( candidates );
			clone.state = clone.HUNTING;
			
			if (Dungeon.level.map[clone.pos] == Terrain.DOOR) {
				Door.enter( clone.pos );
			}
			
			GameScene.add( clone, SPLIT_DELAY );
			Actor.addDelayed( new Pushing( clone, pos, clone.pos ), -1 );
			
			HP -= clone.HP;
		}
	}
	
	return damage;
}
 
开发者ID:kurtyu,项目名称:PixelDungeonTC,代码行数:34,代码来源:Swarm.java

示例4: build

@Override
protected boolean build() {

	Painter.fill( this, _Left(), TOP, HALL_WIDTH, HALL_HEIGHT, Terrain.WATER );
	
	int y = TOP + 1;
	while (y < TOP + HALL_HEIGHT) {
		map[y * getWidth() + _Center() - 3] = Terrain.STATUE;
		map[y * getWidth() + _Center() + 3] = Terrain.STATUE;
		y += 2;
	}

	int pedestal_1 = (TOP + HALL_HEIGHT / 4) * getWidth() + _Center() - 2;
	int pedestal_2 = (TOP + HALL_HEIGHT / 2 + HALL_HEIGHT / 4) * getWidth() + _Center() - 2;
	int pedestal_3 = (TOP + HALL_HEIGHT / 4) * getWidth() + _Center() + 2;
	int pedestal_4 = (TOP + HALL_HEIGHT / 2 + HALL_HEIGHT / 4) * getWidth() + _Center() + 2;

	map[pedestal_1] = map[pedestal_2] = map[pedestal_3] = map[pedestal_4] = Terrain.PEDESTAL;
	
	setExit((TOP - 1) * getWidth() + _Center(),0);
	
	arenaDoor = (TOP + HALL_HEIGHT) * getWidth() + _Center();
	map[arenaDoor] = Terrain.DOOR;
	
	Painter.fill( this, _Left(), TOP + HALL_HEIGHT + 1, HALL_WIDTH, CHAMBER_HEIGHT, Terrain.WATER );
	Painter.fill( this, _Left(), TOP + HALL_HEIGHT + 1, 1, CHAMBER_HEIGHT, Terrain.BOOKSHELF );
	Painter.fill( this, _Left() + HALL_WIDTH - 1, TOP + HALL_HEIGHT + 1, 1, CHAMBER_HEIGHT, Terrain.BOOKSHELF );
	
	entrance = (TOP + HALL_HEIGHT + 2 + Random.Int( CHAMBER_HEIGHT - 1 )) * getWidth() + _Left() + (/*1 +*/ Random.Int( HALL_WIDTH-2 )); 
	map[entrance] = Terrain.ENTRANCE;
	map[getExit(0)] = Terrain.LOCKED_EXIT;
	return true;
}
 
开发者ID:NYRDS,项目名称:pixel-dungeon-remix,代码行数:33,代码来源:NecroBossLevel.java

示例5: split

public Mob split(int cell, int damage) {
	Mob clone;
	try {
		clone = getClass().newInstance();
	} catch (Exception e) {
		throw new TrackedRuntimeException("split issue");
	}

	clone.hp(Math.max((hp() - damage) / 2, 1));
	clone.setPos(cell);
	clone.setState(clone.HUNTING);

	if (Dungeon.level.map[clone.getPos()] == Terrain.DOOR) {
		Door.enter(clone.getPos());
	}

	Dungeon.level.spawnMob(clone, SPLIT_DELAY);
	Actor.addDelayed(new Pushing(clone, getPos(), clone.getPos()), -1);

	if (buff(Burning.class) != null) {
		Buff.affect(clone, Burning.class).reignite(clone);
	}
	if (buff(Poison.class) != null) {
		Buff.affect(clone, Poison.class).set(2);
	}

	if (isPet()) {
		Mob.makePet(clone, Dungeon.hero);
	}

	return clone;
}
 
开发者ID:NYRDS,项目名称:pixel-dungeon-remix,代码行数:32,代码来源:Mob.java

示例6: move

public void move(int step) {
	
	if(!isMovable()) {
		return;
	}

	if (buff(Vertigo.class) != null && Dungeon.level.adjacent(getPos(), step)) { //ignore vertigo when blinking or teleporting
		List<Integer> candidates = new ArrayList<>();
		for (int dir : Level.NEIGHBOURS8) {
			int p = getPos() + dir;
			if (Dungeon.level.cellValid(p)) {
				if ((Dungeon.level.passable[p] || Dungeon.level.avoid[p]) && Actor.findChar(p) == null) {
					candidates.add(p);
				}
			}
		}

		if (candidates.isEmpty()) { // Nowhere to move? just stay then
			return;
		}

		step = Random.element(candidates);
	}

	if (Dungeon.level.map[getPos()] == Terrain.OPEN_DOOR) {
		Door.leave(getPos());
	}

	setPos(step);

	if (!isFlying()) {
		Dungeon.level.press(getPos(),this);
	}

	if (isFlying() && Dungeon.level.map[getPos()] == Terrain.DOOR) {
		Door.enter(getPos());
	}

	if (this != Dungeon.hero) {
		getSprite().setVisible(Dungeon.visible[getPos()] && invisible >= 0);
	}
}
 
开发者ID:NYRDS,项目名称:pixel-dungeon-remix,代码行数:42,代码来源:Char.java


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