本文整理汇总了C++中sf::RenderWindow类的典型用法代码示例。如果您正苦于以下问题:C++ RenderWindow类的具体用法?C++ RenderWindow怎么用?C++ RenderWindow使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了RenderWindow类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: draw
//Player rendering
void Player::draw(sf::RenderWindow& window, sf::View& view, Level level, string move) {
//Player control scheme
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up) || move == "up") {
//Grounded check
if (grounded) {
//Jump
velocity.y = -20;
position.y += 0.5;
grounded = false;
}
}
else if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left) || move == "left") {
//Move player left
velocity.x = -7;
}
else if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right) || move == "right") {
//Move player right
velocity.x = 7;
}
//Add force of gravity to player velocity
velocity.y += 0.8;
//Position at player center
int centerX = position.x - (size / 2);
int centerY = position.y - (size / 2);
//Dimensions
int halfSize = size / 2;
float skin = 2;
//Nearest tiles for preforming collision checks
Tile currentTile = level.getTileFromWorld(sf::Vector2f(centerX, centerY));
Tile below = level.getTileFromWorld(sf::Vector2f(centerX, centerY + (currentTile.size / 2) + velocity.y));
Tile right = level.getTileFromWorld(sf::Vector2f(centerX + skin + (currentTile.size / 2), centerY));
Tile top = level.getTileFromWorld(sf::Vector2f(centerX, centerY - skin - (currentTile.size / 2)));
Tile left = level.getTileFromWorld(sf::Vector2f(centerX - skin - (currentTile.size / 2), centerY));
//Check bottom collision
if (below.type != 0 && velocity.y > 0) {
grounded = true;
velocity.y = 0;
}
else {
grounded = false;
}
//Check top collision
if (top.type != 0 && velocity.y < 0) velocity.y = 0;
//Check left collision
if (left.type != 0 && velocity.x < 0) velocity.x = 0;
//Check right collision
if (right.type != 0 && velocity.x > 0) velocity.x = 0;
//Update player position
position.y += velocity.y;
position.x += velocity.x;
//Update position tracking
lastX = position.x;
//Centered camera
view.setCenter(position);
//Reset x velocity to prevent momentum build up
velocity.x = 0;
//Render player
shape.setPosition(position);
window.draw(shape);
};
开发者ID:Carter-N,项目名称:LearningPlatformer,代码行数:79,代码来源:Player.cpp
示例2: getEvent
void getEvent(sf::Event& event, sf::RenderWindow& window, Input& in)
{
switch (event.type)
{
case sf::Event::Closed:
window.close();
break;
case sf::Event::KeyPressed:
switch (event.key.code)
{
case sf::Keyboard::W: in.W = true; break;
case sf::Keyboard::A: in.A = true; break;
case sf::Keyboard::S: in.S = true; break;
case sf::Keyboard::D: in.D = true; break;
case sf::Keyboard::Up: in.W = true; break;
case sf::Keyboard::Left: in.A = true; break;
case sf::Keyboard::Down: in.S = true; break;
case sf::Keyboard::Right: in.D = true; break;
case sf::Keyboard::I: in.record = true; break;
case sf::Keyboard::O: in.edit = true; break;
case sf::Keyboard::P: in.predict = true; break;
case sf::Keyboard::Space: in.reset = true; break;
case sf::Keyboard::Num0: in.action = 0; break;
case sf::Keyboard::Num1: in.action = 1; break;
case sf::Keyboard::Num2: in.action = 2; break;
case sf::Keyboard::Num3: in.action = 3; break;
case sf::Keyboard::Num4: in.action = 4; break;
case sf::Keyboard::Num5: in.action = 5; break;
case sf::Keyboard::Num6: in.action = 6; break;
case sf::Keyboard::Num7: in.action = 7; break;
case sf::Keyboard::Num8: in.action = 8; break;
case sf::Keyboard::Num9: in.action = 9; break;
case sf::Keyboard::Numpad0: in.action = 10; break;
case sf::Keyboard::Numpad1: in.action = 11; break;
case sf::Keyboard::Numpad2: in.action = 12; break;
case sf::Keyboard::Numpad3: in.action = 13; break;
case sf::Keyboard::Numpad4: in.action = 14; break;
case sf::Keyboard::Numpad5: in.action = 15; break;
case sf::Keyboard::Numpad6: in.action = 16; break;
case sf::Keyboard::Numpad7: in.action = 17; break;
case sf::Keyboard::Numpad8: in.action = 18; break;
case sf::Keyboard::Numpad9: in.action = 19; break;
case sf::Keyboard::X: in.zoom += 0.5f; break;
case sf::Keyboard::Z: in.zoom -= 0.5f; break;
case sf::Keyboard::F1: in.action = -2;
default:
break;
}
break;
case sf::Event::KeyReleased:
switch (event.key.code)
{
case sf::Keyboard::W: in.W = false; break;
case sf::Keyboard::A: in.A = false; break;
case sf::Keyboard::S: in.S = false; break;
case sf::Keyboard::D: in.D = false; break;
case sf::Keyboard::Up: in.W = false; break;
case sf::Keyboard::Left: in.A = false; break;
case sf::Keyboard::Down: in.S = false; break;
case sf::Keyboard::Right: in.D = false; break;
default:
break;
}
default:
break;
}
}
开发者ID:LarssonEmil,项目名称:ThesisRacing,代码行数:76,代码来源:main.cpp
示例3: Draw
void ParentUI::Draw(sf::RenderWindow &window)
{
window.draw(*m_arrow);
window.draw(*m_indicator);
window.draw(*m_parent_ball);
}
开发者ID:bobn94,项目名称:Playground-Panic,代码行数:6,代码来源:ParentUI.cpp
示例4: draw
void Projectile::draw(sf::RenderWindow & window, float dt)
{
window.draw(*this->projectileBody);
}
开发者ID:inyeolsohnn,项目名称:ConsoleApp4,代码行数:4,代码来源:Projectile.cpp
示例5: render
void score::render(sf::RenderWindow &app)
{
app.draw(_text);
}
开发者ID:TheCandianVendingMachine,项目名称:Breakout_TCVM,代码行数:4,代码来源:score.cpp
示例6: render
void Block::render(sf::RenderWindow& window){
window.draw(_block);
}
开发者ID:minhasg,项目名称:Brick,代码行数:3,代码来源:Block.cpp
示例7: entity_draw
void entity_draw(const Entity& entity, sf::RenderWindow& renderWindow)
{
renderWindow.draw(entity.sprite);
}
开发者ID:AndrewOvchinnikov,项目名称:DarkRPG,代码行数:4,代码来源:Entity.cpp
示例8: wyswietl
void Button::wyswietl(sf::RenderWindow &okno)
{
okno.draw(przycisk);
okno.draw(sprajt);
okno.draw(napis);
}
开发者ID:MarDom92,项目名称:Last,代码行数:6,代码来源:button.cpp
示例9: renderBackground
void Map::renderBackground(sf::RenderWindow& window) const
{
window.Draw(*mBackground);
}
开发者ID:TokyoBirdy,项目名称:MasterOfSorcery,代码行数:4,代码来源:Map.cpp
示例10: renderForeground
void Map::renderForeground(sf::RenderWindow& window) const
{
window.Draw(*mForeground);
}
开发者ID:TokyoBirdy,项目名称:MasterOfSorcery,代码行数:4,代码来源:Map.cpp
示例11: render
void SplashScreen::render(const sf::Time & /*dt*/, sf::RenderWindow &window)
{
window.draw(text);
}
开发者ID:BarronFritz,项目名称:TileEngine,代码行数:4,代码来源:splashscreen.cpp
示例12: render
void game::render(sf::RenderWindow &window)
{
window.display();
}
开发者ID:csguth,项目名称:OpenHadouken,代码行数:4,代码来源:game.cpp
示例13: Render
void UnlockPew::Render(sf::RenderWindow &window){
if (m_active)
window.draw(pewDropSprite);
}
开发者ID:nebula2,项目名称:Pew,代码行数:4,代码来源:UnlockPew.cpp
示例14: manageEvents
void Game::manageEvents(sf::RenderWindow &window, Character &player, TileMap map)
{
sf::Event event;
while (window.pollEvent(event))
{
// Close window : exit
if (event.type == Event::Closed)
{
window.close();
deleteAllMobs();
}
// Escape pressed : exit
else if (Keyboard::isKeyPressed(Keyboard::Escape))
{
window.close();
deleteAllMobs();
}
//Right arrow : move player right
else if (Keyboard::isKeyPressed(Keyboard::Right))
{
player.getAnimatedWalk().y=48*2;
player.collisionWithTileManager(map);
player.moveRight();
player.canMove();
}
//Left arrow : move player left
else if (Keyboard::isKeyPressed(Keyboard::Left))
{
player.getAnimatedWalk().y=48;
player.collisionWithTileManager(map);
player.moveLeft();
player.canMove();
}
//Up arrow : move player up
else if (Keyboard::isKeyPressed(Keyboard::Up))
{
player.getAnimatedWalk().y=48*3;
player.collisionWithTileManager(map);
player.moveUp();
player.canMove();
}
//Down arrow : move player down
else if (Keyboard::isKeyPressed(Keyboard::Down))
{
player.getAnimatedWalk().y=0;
player.collisionWithTileManager(map);
player.moveDown();
player.canMove();
}
if(Keyboard::isKeyPressed(Keyboard::Right)||Keyboard::isKeyPressed(Keyboard::Left) || //So walk animation only occur
Keyboard::isKeyPressed(Keyboard::Up) ||Keyboard::isKeyPressed(Keyboard::Down)) //when pler moved
{
//Animates the plaer's movements
player.getAnimatedWalk().x += 47;
if(player.getAnimatedWalk().x>=47*2)
player.getAnimatedWalk().x=0;
player.getSprite().setTextureRect(IntRect(player.getAnimatedWalk().x,player.getAnimatedWalk().y,47,47));
}
}
}
开发者ID:MrHade,项目名称:Bound-By-Fate,代码行数:67,代码来源:Game.cpp
示例15: render
void SnakeNode::render(sf::RenderWindow& window)
{
window.draw(shape_);
}
开发者ID:jhpy1024,项目名称:sfSnakeInvaders,代码行数:4,代码来源:SnakeNode.cpp
示例16: getDrawn
void Player::getDrawn(sf::RenderWindow & win)
{
win.draw(*this);
if (isShielded() == true)
win.draw(_shield);
}
开发者ID:8102,项目名称:R-Type,代码行数:6,代码来源:Player.cpp
示例17: Gravity
void Player::Gravity(sf::RenderWindow &app){
m_vely+=GameConfig::g_config["gravity"]/1000.f*app.GetFrameTime();
}
开发者ID:PhiBabin,项目名称:LD21---Escape,代码行数:3,代码来源:Player.cpp
示例18: draw
void Effect::draw(sf::RenderWindow& window) {
if(activated){
window.draw((*this));
}
}
开发者ID:kaitokidi,项目名称:Gravity,代码行数:5,代码来源:Effect.cpp
示例19: draw_bird
// рисует заданную птицу в нужном месте в переданном окне
void draw_bird(const dtts::BirdState &_bird_state, sf::Sprite &_sprite, sf::RenderWindow &_window) {
_sprite.setPosition(_bird_state.x - bird_radius, height - (_bird_state.y + bird_radius));
_sprite.setTextureRect(sf::IntRect(_bird_state.right_direction ? 0 : 2 * bird_radius, 0, bird_radius * 2, bird_radius * 2));
_window.draw(_sprite);
}
开发者ID:qwert2603,项目名称:Dont-Touch-The-Spikes,代码行数:6,代码来源:main_1_bird.cpp
示例20: drawMenu
Screen::Status GameMenu::drawMenu(sf::RenderWindow &window)
{
int choice = 0; //scelta del menu.
while(window.isOpen())
{
while(window.pollEvent(this->event))
{
if(event.type == sf::Event::Closed || ((event.type == sf::Event::KeyPressed) && (event.key.code == sf::Keyboard::Escape)))
{
return Screen::EXIT;
}
else if(event.type == sf::Event::KeyPressed && event.key.code == sf::Keyboard::Down)
{
if(choice == 3)
choice = -1; // forse troverò un modo migliore un giorno
this->scelta[++choice].setColor(sf::Color::Magenta);
if(choice != 0)
this->scelta[choice-1].setColor(sf::Color::White);
else
this->scelta[3].setColor(sf::Color::White);
}
else if(event.type == sf::Event::KeyPressed && event.key.code == sf::Keyboard::Up)
{
if(choice == 0)
choice = 4;
this->scelta[--choice].setColor(sf::Color::Magenta);
if(choice != 3)
this->scelta[choice+1].setColor(sf::Color::White);
else
this->scelta[0].setColor(sf::Color::White);
}
else if(event.type == sf::Event::KeyPressed && event.key.code == sf::Keyboard::Return)
{
switch(choice)
{
case 0:
return Screen::NEWGAME;
case 1:
return Screen::SCOREBOARD;
case 2:
return Screen::SETTINGS;
case 3:
return Screen::EXIT;
}
}
}
//inizia la parte del ciclo in cui la schermata viene disegnata e aggiornata
window.clear();
window.draw(this->background);
for (int i = 0; i < 4; i++)
{
window.draw(this->scelta[i]);
}
window.display();
}
}
开发者ID:blackdev1l,项目名称:Bomberman,代码行数:67,代码来源:gameMenu.cpp
注:本文中的sf::RenderWindow类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论