1
Graphique / Re : [SFML 2] Texture
« le: Juin 01, 2012, 09:07:14 pm »
ok, merci je ne connaissait pas. je vais tester ça asap
Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.
Et pourquoi pas créer des polygones à la place des images ?
un simple test de point présent dans un triangle peut faire l'affaire, non?
Ah oui là je vois. C'est clair que ce serait carrément plus optimisé, là y a pas photo. Pour quelques calculs de coordonnées qui vont te prendre 5 minutes, tu vas économiser 1 Go de mémoire vidéo (et plusieurs secondes de chargement j'imagine), y a pas à hésiter.
alors y a t'il possibilité d'inter-agir avec la SFML?
il y a t'il possibilité de compressé les png en mémoire?
Oui, mais ce n'est pas supporté par SFML.
ou est -il plus logique de chercher à découper les images ?En fait, dans mes images, la majorité ne sont que des images qui représentent une zone et le reste est transparent, je pensait devoir recadrer mes images et les placer en coordonnée cartésienne via la SFML.
Pourquoi faire ? Ca prendra tout autant de place en mémoire.
bool test(){
int test = (int)img.getPixel(Event.mouseButton.x,Event.mouseButton.y).a;
if( test == 0) return true;
else return false;
}
sf::Texture carte;
sf::Image img ;
sf::Texture region;
carte.loadFromFile("img\\map.png");
img.loadFromFile("img\\1.png");
img.createMaskFromColor(sf::Color::White);
region.loadFromImage(img);
sf::Sprite sprite(carte);
sf::Sprite sprite1(region);
sf::Vector2f Center(400, 300);
#include <cstdlib>
#include <SFML/Graphics.hpp>
#include <SFML/Window.hpp>
#include<SFML/System.hpp>
using namespace std;
int main()
{
// Create the main window
sf::RenderWindow App(sf::VideoMode(800, 600, 32), "SFML Events");
sf::Clock clock;
float Offset;
// Get a reference to the input manager associated to our window, and store it for later use
// const sf::InputStream& Input = App.;
sf::Texture carte;
carte.loadFromFile("img\\map.png");
sf::Sprite sprite(carte);
/* Create a view with the same size as the window, located somewhere in the center of the background
*/
sf::Vector2f Center(0, 0);
sf::Vector2f HalfSize(800, 600);
sf::View View(Center, HalfSize);
// sf::View View(sf::FloatRect(0, 0, 800, 600));
// View.setSize( 800, 600) ;
// Start main loop
while (App.isOpen())
{
// Process events
sf::Event Event;
while (App.pollEvent(Event))
{
if (Event.type == sf::Event::KeyReleased)
std::cout << "shortcut pressed " << Event.key.code << std::endl;
// Close window : exit
if (Event.type == sf::Event::Closed)
App.close();
// Escape key : exit
if ((Event.type == sf::Event::KeyPressed) && (Event.key.code == sf::Keyboard::Escape))
App.close();
}
// Set the view
App.clear();
App.setView(View);
App.draw(sprite);
// Reset to the default view to draw the interface
App.setView(App.getDefaultView());
// App.clear();
App.display();
}
return EXIT_SUCCESS;
}