代码拉取完成,页面将自动刷新
/* 显示提示信息 */
enum DBT_STYLE {
DBT_STRESS=1,//强调模式,黑背景,淡入淡出字体显示
DBT_OBO=2,//One by one,一个接着一个输出,无淡入淡出,与DBT_STRESS不兼容,不能用
DBT_BKIMG=4,//有背景,淡入淡出,与DBT_STRESS不兼容,不成熟(不能用)
DBT_WAIT=8//会停下等待玩家继续,兼容其他样式
};
//参数为:
//消息列表、单句话展示时间、样式,DBT_BKING蒙版透明度
inline void drawBeginningTexts( vector<string> texts,int wtime=1000,int style=DBT_STRESS)
{
//兼容检测
if(style&DBT_STRESS&&(style&DBT_OBO || style&DBT_BKIMG)) return;
//处理
setbkcolor( BLACK );
PIMAGE img = newimage( getwidth(), getheight() );
ege_enable_aa( 1, img );
ege_gentexture( 1, img );
if(style&DBT_STRESS) {
setcolor( WHITE, img );
}
if(style&DBT_BKIMG) {
setcolor(WHITE);
getimage(img,0,0,getwidth(),getheight());
}
for ( string t : texts ) {
if(style&DBT_STRESS) {
settarget( img );
setfont( getwidth( img ) / strlen( t.c_str() ), 0, "微软雅黑", img );
xyprintf( getwidth( img ) / 2 - textwidth( t.c_str() ) / 2, getheight( img ) / 2 - textheight( t.c_str() ) / 2, t.c_str() );
settarget( NULL );
for ( int i = 0; i < 255; i += 10 ) {
ege_setalpha( i, img );
ege_puttexture( img, 0, 0, getwidth(), getheight() );
delay_fps( 60 );
cleardevice();
if ( ::GetAsyncKeyState( 'Z' ) ) {
return;
}
}
if(style&DBT_WAIT) {
while(!::GetAsyncKeyState( 'Z' ));
api_sleep(100);
} else {
api_sleep( wtime );
}
for ( int i = 255; i > 0; i -= 10 ) {
ege_setalpha( i, img );
ege_puttexture( img, 0, 0, getwidth(), getheight() );
delay_fps( 60 );
cleardevice();
if ( ::GetAsyncKeyState( 'Z' ) ) {
return;
}
}
cleardevice( img );
}
if(style&DBT_BKIMG) {
setfont( getwidth() / strlen(t.c_str()), 0, "微软雅黑");
for ( int i = 255; i > 0; i -= 10 ) {
ege_setalpha( 255, img );
ege_puttexture( img, 0, 0, getwidth(), getheight() );
xyprintf( getwidth() / 2 - textwidth( t.c_str() ) / 2, getheight() / 2 - textheight( t.c_str() ) / 2, t.c_str() );
ege_setalpha( i, img );
ege_puttexture( img, 0, 0, getwidth(), getheight() );
delay_fps( 60 );
cleardevice();
if ( ::GetAsyncKeyState( 'Z' ) ) {
return;
}
}
if(style&DBT_WAIT) {
while(!::GetAsyncKeyState( 'Z' ));
api_sleep(100);
} else {
api_sleep( wtime );
}
for ( int i = 0; i < 255; i += 10 ) {
ege_setalpha( 255, img );
ege_puttexture( img, 0, 0, getwidth(), getheight() );
xyprintf( getwidth() / 2 - textwidth( t.c_str() ) / 2, getheight() / 2 - textheight( t.c_str() ) / 2, t.c_str() );
ege_setalpha( i, img );
ege_puttexture( img, 0, 0, getwidth(), getheight() );
delay_fps( 60 );
cleardevice();
if ( ::GetAsyncKeyState( 'Z' ) ) {
return;
}
}
}
}
}
//消息系统
class InfoLS
{
public:
string text;
int life;
color_t color;
InfoLS() {
text="";
life=120;
color=hsl2rgb( random( 360 ), 1, 0.5 );
}
};
vector<InfoLS> infoList;//消息列表
inline InfoLS buildIFLS(string text)
{
InfoLS ils;
ils.text=text;
return ils;
}//迅速生成基本的InfoLS
inline void addInfo(string text)
{
infoList.push_back(buildIFLS(text));
return;
}//迅速插入新消息
inline void showTarget()
{
char tc[100];
string info;
addInfo("本关目标");
if(s_target.len!=0) {
itoa(s_target.len,tc,10);
info="飞行";
info+=tc;
info+="km";
addInfo(info);
}
if(s_target.falls!=0) {
itoa(s_target.falls,tc,10);
info="击落敌机";
info+=tc;
info+="架";
addInfo(info);
}
}
inline void runInfoList()
{
vector<InfoLS> sil;
for( InfoLS& ils : infoList) {
ils.life--;
if(ils.life>0) {
sil.push_back(ils);
}
}
infoList=sil;
sil.clear();
return;
}
inline void drawInfoList(int fontsize=getwidth()/24)
{
setfont(fontsize,0,"微软雅黑");
if(infoList.size()+1>getheight()/fontsize/4*3) infoList.erase(infoList.begin());
int id=0;
for(InfoLS ils:infoList) {
setcolor(ils.color);
outtextxy(getwidth()/4*3,getheight()/4+id*fontsize,ils.text.c_str());
id++;
}
return;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。