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


C++ View::move方法代码示例

本文整理汇总了C++中sf::View::move方法的典型用法代码示例。如果您正苦于以下问题:C++ View::move方法的具体用法?C++ View::move怎么用?C++ View::move使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在sf::View的用法示例。


在下文中一共展示了View::move方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: HandleView

void Game::HandleView(sf::View &view, sf::View &static_view, sf::RenderWindow &window){
	if(sf::Keyboard::isKeyPressed(sf::Keyboard::W))
		view.move(0, -16);
	if(sf::Keyboard::isKeyPressed(sf::Keyboard::A))
		view.move(-16, 0);
	if(sf::Keyboard::isKeyPressed(sf::Keyboard::S))
		view.move(0, 16);
	if(sf::Keyboard::isKeyPressed(sf::Keyboard::D))
		view.move(16, 0);
		
	window.setView(static_view);
	money_text.setString("Money: " + SSTR(values.Money()));
    window.draw(money_text);
    static bool help_toggled = true;
    static bool key_released = true;
    if(sf::Keyboard::isKeyPressed(sf::Keyboard::H) and key_released == true){
    		help_toggled = !help_toggled;
    		key_released = false;
    }else if(!sf::Keyboard::isKeyPressed(sf::Keyboard::H))
    	key_released = true;
    if(help_toggled){
    	help_text.setString("building price: " + SSTR(values.BuildingPrice()) + "\nclaim & upgrade price = 10\nmoney cap = " + SSTR(values.MoneyCap()) + "\n\nc = claim\nr = build resource\nb = build bank\nu = improve\np = sell for 10\n\ntoggle help = h");
    	window.draw(help_text);
    }
}
开发者ID:GridDomination,项目名称:Grid-Domination,代码行数:25,代码来源:Game.cpp

示例2: updateView

void updateView(sf::View& view, sf::Time& deltaTime) {
	float dx = 0;
	float dy = 0;

	if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left) || sf::Keyboard::isKeyPressed(sf::Keyboard::A)) {
		dx -= 1;
	}
	if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right) || sf::Keyboard::isKeyPressed(sf::Keyboard::D)) {
		dx += 1;
	}
	if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up) || sf::Keyboard::isKeyPressed(sf::Keyboard::W)) {
		dy -= 1;
	}
	if (sf::Keyboard::isKeyPressed(sf::Keyboard::Down) || sf::Keyboard::isKeyPressed(sf::Keyboard::S)) {
		dy += 1;
	}

	float moveSpeed = 1000;
	float timeSeconds = deltaTime.asSeconds();

	float dd = dx * dx + dy * dy;
	if (dd != 0) {
		dd = sqrt(dd);
		dx /= dd;
		dy /= dd;
	}

	dx *= moveSpeed;
	dy *= moveSpeed;

	view.move(dx * timeSeconds, dy * timeSeconds);
}
开发者ID:dr01d3k4,项目名称:Platformer,代码行数:32,代码来源:main.cpp

示例3: progress

void Player::progress(float frame, sf::View &view1){

    if(sf::Keyboard::isKeyPressed(sf::Keyboard::Left)) {
        view1.move(-SPEED*frame, 0);
        player.move(-SPEED*frame, 0);
    }
    if(sf::Keyboard::isKeyPressed(sf::Keyboard::Right)) {
        view1.move(SPEED*frame, 0);
        player.move(SPEED*frame, 0);
    }
    if(sf::Keyboard::isKeyPressed(sf::Keyboard::Up)) {
        view1.move(0, -SPEED*frame);
        player.move(0, -SPEED*frame);
    }
    if(sf::Keyboard::isKeyPressed(sf::Keyboard::Down)) {
        view1.move(0, SPEED*frame);
        player.move(0, SPEED*frame);
    }
}
开发者ID:3991,项目名称:2D-Solar-System,代码行数:19,代码来源:Player.cpp

示例4: 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;

}
开发者ID:GrosLapin,项目名称:TowerDefonce,代码行数:22,代码来源:Fonction_graphique.cpp

示例5: screenMovement

void GamePlay::screenMovement(Player &p, sf::View &v, sf::Sprite &s) //!< screen movement function to keep in track with player
{
	//!screen move right
	if(p.getPos().getX() > v.getCenter().x + 40)v.move(2.75f,0.f);
	if(p.getPos().getX() > v.getCenter().x + 40 && p.getBuff() == 1)v.move(4.f,0.f);
	//!screen move left
	if(p.getPos().getX() < v.getCenter().x - 40)v.move(-2.75f,0.f);
	if(p.getPos().getX() < v.getCenter().x - 40  && p.getBuff() == 1)v.move(-4.f,0.f);
	//!screen move up
	if(p.getPos().getY() < v.getCenter().y + 110)v.move(0.f,-5.f);
	//!screen move down
	if(p.getPos().getY() > v.getCenter().y + 120) v.move(0.f,5.f);

	//!keeps background static
	s.setPosition(v.getCenter().x-400.f ,v.getCenter().y -300.f);

	//!keeps messages in place
	message[1].setPosition(v.getCenter().x-295.f ,v.getCenter().y -225.f);
	message[2].setPosition(v.getCenter().x+175.f ,v.getCenter().y -225.f);
	message[3].setPosition(v.getCenter().x+120.f ,v.getCenter().y -200.f);
}
开发者ID:manisoftwartist,项目名称:2Dplatformer-Dave,代码行数:21,代码来源:GamePlay.cpp

示例6: OnDown

void OnDown(thor::ActionContext<std::string> context)
{
	//printf("DOWN, %f\n", deltaTime);
	view.move(sf::Vector2f(0.0f, MOVEMENT_SPEED*1.0f*deltaTime));
}
开发者ID:jdowens,项目名称:runeforge,代码行数:5,代码来源:main_old.cpp

示例7: OnRight

void OnRight(thor::ActionContext<std::string> context)
{
	//printf("RIGHT, %f\n", deltaTime);
	view.move(sf::Vector2f(MOVEMENT_SPEED*1.0f*deltaTime, 0.0f));
}
开发者ID:jdowens,项目名称:runeforge,代码行数:5,代码来源:main_old.cpp

示例8: 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;
	}
//.........这里部分代码省略.........
开发者ID:markus456,项目名称:neural-network,代码行数:101,代码来源:ironman.cpp

示例9: 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;
	}
开发者ID:cyclohexanamine,项目名称:shipbrain,代码行数:63,代码来源:main.cpp


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