Welcome, Guest. Please login or register. Did you miss your activation email?

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - 0026sd

Pages: [1]
1
Graphics / Text Effects
« on: June 06, 2013, 06:08:03 pm »
Hey everyone!!

Just a general question of which I cannot adequately find an answer for within the forum (or on Google).

I'm creating a menu with menu entries and I want to add a text effect to the menu entry when it's hovered over. This can be anything like a glow, outline, what-have-you. I feel like it would be so much less overhead than creating 2 images of every menu entry I have if I could check if the mouse was colliding with the entry and, if so, call a hover() on it or something.

SO! My question is, is this possible through SFML? I looked through parts of the Graphics module in the documentation but didn't see what I was looking for... perhaps I was looking in the wrong place.

Any tips/advice would be very much appreciated.

Thanks,
Scott.

2
Window / Handling keyPressed event in player's update method (SFML 1.6)
« on: November 06, 2012, 05:00:43 pm »
Hi everyone,

How can I execute code if a key has been pressed inside my Player class' update method?

The issue is that I'm currently using window.GetInput().IsKeyDown(sf::Key::whatever) for the player's movement and jumping but I need only to get the keyPressed when the player fires (so he doesn't spam bullets as long as the space bar is down).

I've tried adding an Event to the method and polling it but it doesn't respond to anything. Please have a look at this simplified code:

Main.cpp
#include <SFML/Graphics.hpp>
#include <iostream>
#include "Level.h"

int main()
{
   
    sf::RenderWindow window(sf::VideoMode(500, 300, 32), "SFML KeyPressed");
    window.UseVerticalSync(true);

    Level level;
    level.Initialize();
    level.LoadContent();

    while(window.IsOpened())
    {

        sf::Event Event;
        while(window.GetEvent(Event))
        {

             if(Event.Type == sf::Event::Closed)
                 window.Close();

        }

        level.Update(window);

        window.Clear();

        level.Draw(window);

        window.Display();

    }

    return 0;

}

I won't include the Level class. It basically creates a Player object and calls the player's init, load, update, draw methods in the same way main.cpp does with level.

Player.cpp

// ...

void Player::Update(sf::RenderWindow &window)
{

    // Check for movement
    if(window.GetInput().IsKeyDown(sf::Key::Left))
        movement = -1.0f;
    else if(window.GetInput().IsKeyDown(sf::Key::Right))
        movement = 1.0f;

    // Check for shooting - this is where I only need the key to fire once...
    sf::Event Event;
    while(window.GetEvent(Event))
    {
        if(Event.KeyPressed == sf::Key::Space)
            Shoot();
    }

    // ...

}

// ...

 

Pages: [1]
anything