本文整理汇总了C++中Coord::insideFloor方法的典型用法代码示例。如果您正苦于以下问题:C++ Coord::insideFloor方法的具体用法?C++ Coord::insideFloor怎么用?C++ Coord::insideFloor使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Coord
的用法示例。
在下文中一共展示了Coord::insideFloor方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: networkMove
void PlayerCharacter::networkMove( int toX, int toY )
{
if( absvalue( toX - coord.x ) > 1 || absvalue( toY - coord.y ) > 1 ){
return;
}
Coord nc = Coord(toX, toY) ;
if( !nc.insideFloor() )return;
if( !floor->walkable(nc))return;
Tile t = floor->getTile(nc);
if( t.damagable() && stat.hp <= 1 ){ // ダメージ受けているときは歩いて行けない
return;
}
coord = nc;
notify( k_proto::FUNCTION_MOVENOTIFY );
}
示例2: goblinThink
// Enemyのルーチン類
void Enemy::goblinThink()
{
// GOBLINはランダムウォーク
Coord nc = Rect( coord.translate(-1,-1),
coord.translate(1,1) ).randomWithin();
// std::cerr << "goblinThink cnt:" << m_counter << " hp:" << stat.hp << nc.to_s() << " cur:" << coord.to_s() << std::endl;
if( ( random()%100)==0){
toDelete = true;
return;
}
if( !nc.insideFloor() ) return;
if( floor->walkable(nc) == false)return;
moveTo(nc);
// 4方向に誰かいたら攻撃する
Movable *m0 = floor->getMovable( coord.translate(1,0));
Movable *m1 = floor->getMovable( coord.translate(0,1));
Movable *m2 = floor->getMovable( coord.translate(0,-1));
Movable *m3 = floor->getMovable( coord.translate(-1,0));
if( m0 && m0->typeID == k_proto::MOVABLE_HUMAN ){
static_cast<Character*>(m0)->attacked( this, 2 );
}
if( m1 && m1->typeID == k_proto::MOVABLE_HUMAN ){
static_cast<Character*>(m1)->attacked( this, 2 );
}
if( m2 && m2->typeID == k_proto::MOVABLE_HUMAN ){
static_cast<Character*>(m2)->attacked( this, 2 );
}
if( m3 && m3->typeID == k_proto::MOVABLE_HUMAN ){
static_cast<Character*>(m3)->attacked( this, 2 );
}
}