本文整理汇总了C++中Hero::get_layer方法的典型用法代码示例。如果您正苦于以下问题:C++ Hero::get_layer方法的具体用法?C++ Hero::get_layer怎么用?C++ Hero::get_layer使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Hero
的用法示例。
在下文中一共展示了Hero::get_layer方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: MapEntity
/**
* \brief Creates an arrow.
* \param hero The hero.
*/
Arrow::Arrow(const Hero& hero):
MapEntity("", 0, hero.get_layer(), 0, 0, 0, 0),
hero(hero) {
// initialize the entity
int direction = hero.get_animation_direction();
create_sprite("entities/arrow", true);
get_sprite().set_current_direction(direction);
set_drawn_in_y_order(true);
if (direction % 2 == 0) {
// Horizontal.
set_size(16, 8);
set_origin(8, 4);
}
else {
// Vertical.
set_size(8, 16);
set_origin(4, 8);
}
set_xy(hero.get_center_point());
set_optimization_distance(0); // Make the arrow continue outside the screen until disappear_date.
std::string path = " ";
path[0] = '0' + (direction * 2);
Movement* movement = new PathMovement(path, 192, true, false, false);
set_movement(movement);
disappear_date = System::now() + 10000;
stop_now = false;
entity_reached = NULL;
}
示例2: Entity
/**
* \brief Creates an arrow.
* \param hero The hero.
*/
Arrow::Arrow(const Hero& hero):
Entity("", 0, hero.get_layer(), Point(0, 0), Size(0, 0)),
hero(hero) {
// initialize the entity
int direction = hero.get_animation_direction();
create_sprite("entities/arrow", true);
get_sprite().set_current_direction(direction);
set_drawn_in_y_order(true);
if (direction % 2 == 0) {
// Horizontal.
set_size(16, 8);
set_origin(8, 4);
}
else {
// Vertical.
set_size(8, 16);
set_origin(4, 8);
}
set_xy(hero.get_center_point());
notify_position_changed();
std::string path = " ";
path[0] = '0' + (direction * 2);
set_movement(std::make_shared<PathMovement>(
path, 192, true, false, false
));
disappear_date = System::now() + 10000;
stop_now = false;
entity_reached = nullptr;
}
示例3: MapEntity
/**
* \brief Creates a boomerang.
* \param hero the hero
* \param max_distance maximum distance of the movement in pixels
* \param speed speed of the movement in pixels per second
* \param angle the angle of the boomerang trajectory in radians
* \param sprite_name animation set id representing the boomerang
*/
Boomerang::Boomerang(
Hero& hero,
int max_distance,
int speed,
double angle,
const std::string& sprite_name):
MapEntity("", 0, hero.get_layer(), 0, 0, 0, 0),
hero(hero),
has_to_go_back(false),
going_back(false),
speed(speed) {
// initialize the entity
create_sprite(sprite_name);
set_size(16, 16);
set_origin(8, 8);
int hero_x = hero.get_top_left_x();
int hero_y = hero.get_top_left_y();
switch (hero.get_animation_direction()) {
case 0:
set_xy(hero_x + 24, hero_y + 8);
break;
case 1:
set_xy(hero_x + 8, hero_y - 8);
break;
case 2:
set_xy(hero_x - 8, hero_y + 8);
break;
case 3:
set_xy(hero_x + 8, hero_y + 24);
break;
}
initial_coords.set_xy(get_xy());
StraightMovement* movement = new StraightMovement(false, false);
movement->set_speed(speed);
movement->set_angle(angle);
movement->set_max_distance(max_distance);
set_movement(movement);
next_sound_date = System::now();
}
示例4: Entity
/**
* \brief Creates a carried item (i.e. an item carried by the hero).
* \param hero the hero who is lifting the item to be created
* \param original_entity the entity that will be replaced by this carried item
* (its coordinates, size and origin will be copied)
* \param animation_set_id name of the animation set for the sprite to create
* \param destruction_sound_id Name of the sound to play when this item is destroyed
* (or an empty string).
* \param damage_on_enemies damage received by an enemy if the item is thrown on him
* (possibly 0)
* \param explosion_date date of the explosion if the item should explode,
* or 0 if the item does not explode
*/
CarriedItem::CarriedItem(
Hero& hero,
const Entity& original_entity,
const std::string& animation_set_id,
const std::string& destruction_sound_id,
int damage_on_enemies,
uint32_t explosion_date
):
Entity("", 0, hero.get_layer(), Point(0, 0), Size(0, 0)),
hero(hero),
is_lifting(true),
is_throwing(false),
is_breaking(false),
break_one_layer_above(false),
destruction_sound_id(destruction_sound_id),
damage_on_enemies(damage_on_enemies),
shadow_sprite(nullptr),
throwing_direction(0),
next_down_date(0),
item_height(0),
y_increment(0),
explosion_date(explosion_date) {
// align correctly the item with the hero
int direction = hero.get_animation_direction();
if (direction % 2 == 0) {
set_xy(original_entity.get_x(), hero.get_y());
}
else {
set_xy(hero.get_x(), original_entity.get_y());
}
set_origin(original_entity.get_origin());
set_size(original_entity.get_size());
set_drawn_in_y_order(true);
// create the lift movement and the sprite
std::shared_ptr<PixelMovement> movement = std::make_shared<PixelMovement>(
lifting_trajectories[direction], 100, false, true
);
create_sprite(animation_set_id);
get_sprite().set_current_animation("stopped");
set_movement(movement);
// create the shadow (not visible yet)
shadow_sprite = std::make_shared<Sprite>("entities/shadow");
shadow_sprite->set_current_animation("big");
}
示例5: MapEntity
/**
* @brief Creates a carried item (i.e. an item carried by the hero).
* @param hero the hero who is lifting the item to be created
* @param original_entity the entity that will be replaced by this carried item
* (its coordinates, size and origin will be copied)
* @param animation_set_id name of the animation set for the sprite to create
* @param destruction_sound_id name of the sound to play when this item is destroyed
* (or an empty string)
* @param damage_on_enemies damage received by an enemy if the item is thrown on him
* (possibly 0)
* @param explosion_date date of the explosion if the item should explode,
* or 0 if the item does not explode
*/
CarriedItem::CarriedItem(Hero& hero, MapEntity& original_entity,
const std::string& animation_set_id,
const std::string& destruction_sound_id,
int damage_on_enemies, uint32_t explosion_date):
MapEntity(),
hero(hero),
is_lifting(true),
is_throwing(false),
is_breaking(false),
break_on_intermediate_layer(false) {
// put the item on the hero's layer
set_layer(hero.get_layer());
// align correctly the item with the hero
int direction = hero.get_animation_direction();
if (direction % 2 == 0) {
set_xy(original_entity.get_x(), hero.get_y());
}
else {
set_xy(hero.get_x(), original_entity.get_y());
}
set_origin(original_entity.get_origin());
set_size(original_entity.get_size());
// create the lift movement and the sprite
PixelMovement *movement = new PixelMovement(lifting_trajectories[direction], 100, false, true);
create_sprite(animation_set_id);
get_sprite().set_current_animation("stopped");
set_movement(movement);
// create the breaking sound
this->destruction_sound_id = destruction_sound_id;
// create the shadow (not visible yet)
this->shadow_sprite = new Sprite("entities/shadow");
this->shadow_sprite->set_current_animation("big");
// damage on enemies
this->damage_on_enemies = damage_on_enemies;
// explosion
this->explosion_date = explosion_date;
}
示例6: hero
/**
* \brief Creates an arrow.
* \param hero the hero
*/
Arrow::Arrow(Hero& hero):
hero(hero) {
// initialize the entity
int direction = hero.get_animation_direction();
set_layer(hero.get_layer());
create_sprite("entities/arrow", true);
get_sprite().set_current_direction(direction);
set_bounding_box_from_sprite();
set_xy(hero.get_center_point());
set_optimization_distance(0); // Make the arrow continue outside the screen until disappear_date.
std::string path = " ";
path[0] = '0' + (direction * 2);
Movement *movement = new PathMovement(path, 192, true, false, false);
set_movement(movement);
disappear_date = System::now() + 10000;
stop_now = false;
entity_reached = NULL;
}
示例7: PathMovement
/**
* @brief Creates a hookshot.
* @param hero the hero
*/
Hookshot::Hookshot(Hero &hero):
next_sound_date(System::now()),
has_to_go_back(false),
going_back(false),
entity_reached(NULL),
link_sprite("entities/hookshot") {
// initialize the entity
int direction = hero.get_animation_direction();
set_layer(hero.get_layer());
create_sprite("entities/hookshot", true);
get_sprite().set_current_direction(direction);
link_sprite.set_current_animation("link");
set_size(16, 16);
set_origin(8, 13);
set_xy(hero.get_xy());
std::string path = " ";
path[0] = '0' + (direction * 2);
Movement *movement = new PathMovement(path, 192, true, false, false);
set_movement(movement);
}
示例8: MapEntity
/**
* \brief Creates a hookshot.
* \param hero the hero
*/
Hookshot::Hookshot(const Hero& hero):
MapEntity("", 0, hero.get_layer(), 0, 0, 0, 0),
next_sound_date(System::now()),
has_to_go_back(false),
going_back(false),
entity_reached(nullptr),
link_sprite(std::make_shared<Sprite>("entities/hookshot")) {
// initialize the entity
int direction = hero.get_animation_direction();
create_sprite("entities/hookshot", true);
get_sprite().set_current_direction(direction);
link_sprite->set_current_animation("link");
set_size(16, 16);
set_origin(8, 13);
set_drawn_in_y_order(true);
set_xy(hero.get_xy());
std::string path = " ";
path[0] = '0' + (direction * 2);
set_movement(std::make_shared<PathMovement>(path, 192, true, false, false));
}