本文整理汇总了C++中sf::View::zoom方法的典型用法代码示例。如果您正苦于以下问题:C++ View::zoom方法的具体用法?C++ View::zoom怎么用?C++ View::zoom使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类sf::View
的用法示例。
在下文中一共展示了View::zoom方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: aktualizuj_kamere
void aktualizuj_kamere()
{
kamera.setCenter( gracz->zwroc_wsp().x, gracz->zwroc_wsp().y);
// if( gracz->dmg_krytyczny ){
// ::przyblizenie = 0.9;
// gracz->dmg_krytyczny = false;
// }
// if( przyblizenie < 1 )
// przyblizenie += 0.00000000000001;
// if( przyblizenie > 1 )
// przyblizenie = 1;
kamera.zoom( przyblizenie );
}
示例2: handleResize
bool handleResize(void){
bool limitWindowSize = true;
int minWindowSize = 71, smallSide;
if ( (limitWindowSize) && (event.size.height < minWindowSize) )
{
event.size.height = minWindowSize;
window.setSize( sf::Vector2u(event.size.width, event.size.height) );
}
view.setSize(event.size.width, event.size.height);
if (event.size.width <= event.size.height)
{
view.zoom(1.0 * InitWinX / event.size.width);
}
else
{
view.zoom(1.0 * InitWinY / event.size.height);
}
window.setView(view);
}
示例3: gestionTouches
void gestionTouches (sf::View &View, sf::Clock &timer)
{
float Offset = timer.getElapsedTime().asMilliseconds();
// le deplacement de la map
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up) ) View.move( 0, -Offset);
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Down) ) View.move( 0, Offset);
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left) ) View.move(-Offset, 0);
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right) ) View.move(Offset, 0);
// le zoom
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Add) ) View.zoom(1.005f);
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Subtract) ) View.zoom(0.995f);
// la gestion du "temps"
if (sf::Keyboard::isKeyPressed(sf::Keyboard::A) ) MonTimer::getSpeed() * 1.07;
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Z) ) MonTimer::getSpeed() / 1.07;
// clean
if (sf::Keyboard::isKeyPressed(sf::Keyboard::E) ) std::cout <<std::endl <<std::endl<<std::endl<<std::endl;
}
示例4: update
bool update()
{
sf::Event event;
while(window->pollEvent(event)) {
switch (event.type) {
case sf::Event::Closed:
return false;
case sf::Event::KeyPressed:
switch(event.key.code) {
case sf::Keyboard::Up:
camera.move(0,-1);
break;
case sf::Keyboard::Down:
camera.move(0,1);
std::cout << camera.getCenter().x;
break;
case sf::Keyboard::Left:
camera.move(-1,0);
break;
case sf::Keyboard::Right:
camera.move(1,0);
break;
case sf::Keyboard::F1:
for(int i = 0; i<10; i++) {
updateCreatures();
}
break;
case sf::Keyboard::F2:
for(int i = 0; i<100; i++) {
updateCreatures();
}
break;
case sf::Keyboard::F3:
fastForward(10);
break;
case sf::Keyboard::F4:
fastForward(50);
break;
}
break;
case sf::Event::MouseMoved:
if(sf::Mouse::isButtonPressed(sf::Mouse::Button::Left)) {
camera.move(mousepos-window->mapPixelToCoords(sf::Mouse::getPosition(),camera));
}
mousepos = window->mapPixelToCoords(sf::Mouse::getPosition(),camera);
break;
case sf::Event::MouseWheelMoved:
if(event.mouseWheel.delta>0) {
camera.zoom(1.15);
} else if(event.mouseWheel.delta<0) {
camera.zoom(0.85);
}
break;
case sf::Event::MouseButtonPressed:
if(mouseclock.getElapsedTime().asMilliseconds()<333) {
auto center = window->mapPixelToCoords(sf::Vector2i(event.mouseButton.x,event.mouseButton.y),camera);
camera.setCenter(center);
camera.setSize(sf::Vector2f(SCREEN_W,SCREEN_H));
}
prev_click = mouseclock.restart();
break;
}
}
double ftest = 0;
avg = 0;
for(auto& creature: creatures) {
creature->foodPool(food);
creature->update();
for(auto fd = food.begin(); fd<food.end(); fd++) {
if(distance(creature->getPos(),*fd)<15) {
fd = food.erase(fd);
creature->increaseFitness(1.f);
}
}
avg += creature->getFitness();
if(creature->getFitness()>ftest) {
ftest = creature->getFitness();
}
}
pavg = avg;
avg = avg/creatures.size();
if(avg>bestavg) {
best_so_far = vpop->getPopulationRef();
} else if(avg < bestavg*0.85) {
vpop->revertPopulation(best_so_far);
}
while(food.size()<FOOD_CAP) {
food.push_back(sf::Vector2f(20 + rand() % (AREA_W-40), 10 + rand() % (AREA_H-20)));
}
if(counter>1) {
counter--;
} else {
updateCreatures();
counter = 60*evolution_rate;
std::cout << "Generation: " << gen++;
std::cout << " fittest: " << ftest;
std::cout << " average: " << avg << std::endl;
}
//.........这里部分代码省略.........
示例5: render
int render(Phys* phys)
{
window->clear(sf::Color::Black);
sf::Vector2f viewmove(0, 0);
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left)) viewmove.x -= base_camera_move;
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right)) viewmove.x += base_camera_move;
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up)) viewmove.y += base_camera_move;
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Down)) viewmove.y -= base_camera_move;
viewmove *= (phys->dt * view->getSize().x / scrw);
viewmove = sv2rotate(viewmove, -view->getRotation());
view->move(viewmove);
view->zoom(pow(1.2, -mouse_wheel));
mouse_wheel = 0;
float viewrotate = 0;
if (sf::Keyboard::isKeyPressed(sf::Keyboard::LBracket)) viewrotate += base_camera_rotate;
if (sf::Keyboard::isKeyPressed(sf::Keyboard::RBracket)) viewrotate -= base_camera_rotate;
viewrotate *= phys->dt;
view->rotate(viewrotate);
window->setView(*view);
for (std::vector<Ship*>::iterator its = phys->ship_list.begin(); its != phys->ship_list.end(); ++its)
{
sf::ConvexShape& shape = (*its)->shape;
cpVect pos = cpBodyGetPosition((*its)->body);
cpFloat angle = cpBodyGetAngle((*its)->body);
shape.setPosition(pos.x, pos.y);
shape.setRotation(180 / PI * angle);
window->draw(shape);
}
for (std::vector<Shell*>::iterator its = phys->shell_list.begin(); its != phys->shell_list.end(); ++its)
{
sf::ConvexShape& shape = (*its)->shape;
cpVect pos = cpBodyGetPosition((*its)->body);
cpFloat angle = cpBodyGetAngle((*its)->body);
shape.setPosition(pos.x, pos.y);
shape.setRotation(180 / PI * angle);
window->draw(shape);
}
char* str = new char[30];
float acc = 0;
for (int i = 0; i < frame_time_count; i++) acc += phys->last_frame_deltas[i];
acc /= frame_time_count;
sprintf(str, "%.1f", 1./acc);
drawtext(str, 0.02, 0.98, 10);
int sc = (*phys->ship_list.begin())->score;
sprintf(str, "%d", sc);
drawtext(str, 0.98, 0.98, 10);
delete str;
window->display();
return 0;
}