示例#1
0
void init_laser(Laser* laser, Laser_Color color, Entity* shooter, f32 angle) {
    set_sprite(laser->entity, get_laser_sprite(color), 0.75f, 0, make_vector2(0.0f, -0.3f));
    laser->shooter_id = shooter->id;

    laser->entity->position    = shooter->position + (get_direction(angle) * 0.75f);
    laser->entity->orientation = angle;
}
示例#2
0
文件: main.cpp 项目: CCJY/coliru
void test(option op) {
	std::vector<std::vector<big_data_type> > table;
	std::vector<big_data_type> tmp;
	for(int i=0; i!=10; ++i) {
        switch(op) {
            case a:
                table.emplace_back(make_vector(i, tmp));
                break;
            case b:
                tmp = make_vector2(i);
                table.emplace_back(tmp);
                break;
            case c:
                tmp = make_vector2(i);
                table.emplace_back(std::move(tmp));
                break;
            case d:
                table.emplace_back(make_vector2(i));
                break;
            case e:
                std::vector<big_data_type> result;
                make_vector(i, tmp);
                result.reserve( tmp.size() );
                result.insert( result.end(), std::make_move_iterator( tmp.begin() ),std::make_move_iterator( tmp.end() ) );
                table.emplace_back(std::move(result));
                break;
        }
	}
	std::cout << "Big data copied or created:" << big_data_type::counter << "\n";
    big_data_type::counter = 0;
    std::cout << "Big data created:" << big_data_type::create_counter << "\n";
    big_data_type::create_counter = 0;
    std::cout << "Big data moved:" << big_data_type::move_counter << "\n";
    big_data_type::move_counter = 0;
    std::size_t cap = 0;
    for (auto&& v:table)
        cap += v.capacity();
    std::cout << "Total capacity at end:" << cap << "\n";
}
示例#3
0
 auto bottom_left(const Rect<T>& rect)
 {
   return make_vector2(rect.left, rect.bottom());
 }
示例#4
0
 auto top_right(const Rect<T>& rect)
 {
   return make_vector2(rect.right(), rect.top);
 }
示例#5
0
 auto position(const Rect<T>& rect)
 {
   return make_vector2(rect.left, rect.top);
 }
示例#6
0
 auto size(const Rect<T>& rect)
 {
   return make_vector2(rect.width, rect.height);
 }