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.


Messages - mikesinclair66

Pages: [1]
1
General / Re: Change Cursor to Image
« on: October 18, 2020, 08:44:24 pm »
Too bad no one answered this sooner. Your structure is correct, the only thing is your second argument to mouse_cursor_1.loadFromPixels() is a vector with the wrong y coordinate. The y coordinate should be mouse_cursor_1_image.getSize().y.

2
Graphics / Re: Sprite is blank after loading from texture
« on: October 18, 2020, 04:10:12 am »
https://www.sfml-dev.org/tutorials/2.5/graphics-sprite.php#the-white-square-problem
https://www.sfml-dev.org/faq.php#graphics-white-rect

Your texture is local to the Menu constructor, thus it is destroyed at the end of the constructor.
You could make it a member of Menu, or declare the variable in your main and pass it (by ref) to your constructor, or anything that doesn't destroy the texture while you still need it.

Wow, perfect thank you very much! Rather than creating Texture bg in the Menu constructor, I made Texture bg a member in Menu.h. It is working great now!

3
Graphics / Sprite is blank after loading from texture
« on: October 18, 2020, 03:16:35 am »
Hello,

I am using SFML to display a sprite on the screen. I first use a texture and call loadFromFile() to load the image. This works well with no errors occurring. It seems that the image path is correct and it loads the image, but it doesn't seem to store the data in the sprite. The sprite is displayed without error, but it shows a blank white image.

Is there a problem with my code in the following snippets? They should be fairly easy to read :).

My code:

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

using namespace sf;

int main()
{
    VideoMode vm = VideoMode::getDesktopMode();
    int width = vm.width, height = vm.height;
    RenderWindow window(VideoMode(width, height), "Score Arena v1.0", Style::Fullscreen);
    window.setPosition(Vector2i(0, 0));

    Menu menu(width, height);

    while (window.isOpen())
    {
        Event event;
        while (window.pollEvent(event))
        {
            switch (event.type) {
                case Event::Closed:
                    window.close();
                    break;

                //when a key is pressed
                case Event::KeyPressed:
                    if (Keyboard::isKeyPressed(Keyboard::Escape))
                        window.close();
                    break;
            }
        }

        window.clear();
       
        menu.draw(window);

        window.display();
    }

    return 0;
}
 

Menu.h
#pragma once
#include <string>
#include <SFML/Graphics.hpp>

using namespace std;
using namespace sf;

class Menu {
        int page = 0;
        string title = "Score Arena";
        string labels[4]{
                "Single Player",
                "Multi Player",
                "Options",
                "Exit"
        };
        Sprite background;

        int width, height;

public:
        Menu(int, int);
        void draw(RenderWindow &window);
};
 

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

Menu::Menu(int width, int height) {
        this->width = width;
        this->height = height;

        Texture bg;
        if (!bg.loadFromFile("menuBg.jpg"))
                std::cout << "Error loading image!" << std::endl;
        background.setTexture(bg);
}

void Menu::draw(RenderWindow &window) {
        window.draw(background, RenderStates::Default);
}
 

Pages: [1]