Diskuze: Vykreslení obrázků
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.

Tvůrce

Zobrazeno 24 zpráv z 24.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Nějak to jde pokud si stáhneš nějak přídavnou knihovnu, já to kdysi zkoušel právě s PNG ale nepovedlo se mi to rozběhat... Průhlednost barev ale můžeš udělat i v bmp, pokud používáš color depth 8 tak je to černá pokud 16 nebo 32 tak je to magendo (255,0,255), pokud pak místo funkce blit použiješ masked_blit (parametry jsou stejný) tak místo téhle barvy nebude nic (bude průhledná).
Tak s tim ti asi neporadim. Leda, zkus najít a zprovoznit nějakou tu knihovnu, třeba se ti to povede.
Pokud používáš Dev-C++ tak v dostupných updatech, jinak google... nebo možná na stránkách allegra
Vyšel zajímavý článek o Allegru: http://www.itnetwork.cz/…-c-plus-plus
Píše se tam, že jako výchozí to umí TGA, ten by měl umět alfaprůhlednost.
A nevíš náhodou, jak ho použít? Nemůžu to v těch hlavičkových souborech najít. (Verze Allegra kterou mám je 4.2.3)
To se zeptej Maxfx, já programuji jen v moderních nástrojích.
čus zde pro tga http://alleg.sourceforge.net/…lleg010.html
Nemůžu tam najít, jak to vykreslit s tou průhledností!
Sice jsem Allegro nikdy neviděl, ale vytvoř si třeba v Photoshopu 32bitové TGA s nějakou průhleností a potom zavolej před kreslením set_alpha_blender();:
set_alpha_blender();
draw_trans_sprite(buffer, alpha_sprite, x, y);
Kdybys používal moderní jazyky a frameworky (třeba XNA), nemusel by ses takovými hloupostmi vůbec zatěžovat, prostě to v základu umí PNG a hotovo.
Dělám to takhle
#include<allegro.h>
BITMAP *bitmap;
int main()
{
allegro_init();
install_keyboard();
set_color_depth(16);
set_gfx_mode(GFX_AUTODETECT,640,320,0,0);
bitmap = load_bitmap("map.bmp",NULL);
while(!keypressed())
{
//blit(bitmap,screen,0,0,0,0,bitmap->w,bitmap->h);
masked_blit(bitmap,screen,0,0,0,0,bitmap->w,bitmap->h);
}
return 0;
destroy_bitmap(bitmap);
}
END_OF_MAIN();
To už se dávno nepoužívá, protože pouze jedna průhledná barva dělá okousané hrany. nuz mluví o alfakanálu.
V Céčku se ještě používá leccos BMP nemá skoro ani kompresi a
alfa-kanál taky ne. Možná to nějak allegro obchází, to nevím, ale přijde
mi prostě na nic, piplat se s alfa-kanálem, když je to v jiných knihovnách
(hlavně ve vyšších jazycích) naprosto standardní věc
tak dal jsem to jako příklad ,dá se to vymyslet líp
Pokud chceš v programech používat tyhle věci tak bych se bejt tebou naučil nějakou jinou knihovnu, Allegro je dost starý a používá se jenom na jednoduchý hry, neumí ani rotaci. Popřípadě se naučit Allegro 5, tam by to bejt mohlo.
Ano a proto z něj vycházejí moderní jazyky, které jsou ještě hezčí.
Máš recht, umí. Já myslel že to umí až od pětky.
Zobrazeno 24 zpráv z 24.