SFML2. 0 val hogyan csináljam meg azt, hogy egy általam készített jpg vagy bmp formátumú kép teljesen láthatatlanból egyre láthatóbbá váljon?
Van egy ötletem.
Mivel az SFML képes kezelni a gif formátumot ezért megcsinálhatnék egy ilyen giffet gimp el és ezt egyszer lejátszom amikor megnyitom a programot.
Bár tökéletes ez a megoldás mégsem szeretném ezt választani mert túl könnyű lenne.Úgy szeretném megcsinálni ahogy még nem tudom.
Létrehozok egy 800x800 as fekete hátterű ablakot és a bmp képet valahogy teljesen át tetszővé kéne tenni majd fokozatosan egyre láthatóbbá varázsolni.
Át néztem a dokumentációját de nem találtam a nekem megfelelő függvényt.
Segítsetek pls.
Rakj egymásra két képet: alulra a tiédet, felülre egy teljesen feketét. A felsőnek fokozatosan vedd feljebb az alfa csatornáját 255-ig, amikor teljesen átlátszó lesz.
Kösz.
És még annyit had kérdezzek meg,hogy lehetséges e az,hogy az ablakot ne lehessen átméretezni.
Mert nem szeretném ha a felhasználó a kurzorral átméretezze vagy pedig az X bezáró jel mellet jobbra levő kis kockával full képernyőre tegye.
Megtaláltam ami nekem kell.
rWindow.create(sf::VideoMode(700, 650, 32), "AMOBA", sf::Style::Close, sf::ContextSettings(8));
Ha így hozom létre az ablakot akkor nem lehet full képernyőre tenni.
Már csak azt kéne valahogy megakadályozni hogy ne lehessen átméretezni az ablak oldalait.
Segítsetek.
Nem jó.
Hiába csinálom úgy akkor is átméretezhető.
És még csak nem is lehet bezárni ebben az esetben az ablakot mert jobb oldalt ott fent nincs X.
És még csak alulra sem lehet tenni mert nincs ott _.
Igen utánanéztem és már sikerült.
De te félreértettél engem.
//main.cpp
#include <SFML/Graphics/RenderWindow.hpp>
#include <SFML/Window/Event.hpp>
#include <iostream>
int main()
{
sf::RenderWindow rWindow;
rWindow.create(sf::VideoMode(700, 650, 32), "AMOBA", sf::Style::Close, sf::ContextSettings(8));
while(rWindow.isOpen())
{
sf::Event Event;
while(rWindow.pollEvent(Event))
if(Event.type == sf::Event::Closed)
rWindow.close();
else
if(Event.type == sf::Event::Resized)
continue;
rWindow.clear();
rWindow.display();
}
Így lett jó.
Amint láthatod ebben a példában nem a sf::Style::Resize használom mert akkor nem lehetne beikszelni, vagy alulra tenni.
A Stílusokkal nem volt az megoldható hogy a kurzorral az ablakot ne lehessen átméretezhetővé tenni.
Event kellet használnom hozzá.
Amúgy kösz adtam zöld kezet.
További kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!