say.h
来自「这个版本修正了已知的Bug,同时添加了部分函数」· C头文件 代码 · 共 64 行
H
64 行
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
class SAY
{
private:
BITMAP *bmp,*bak,*buf;
public:
void Say(BITMAP *bitmap,char *s,int x,int y,int w,int h,char col);
void Say_bitmap(BITMAP *bitmap,BITMAP *s,int x,int y,int w,int h);
short time;
SAY();
~SAY();
};
SAY::SAY()
{time=50;
bmp=NULL;
bak=NULL;
buf=NULL;
}
SAY::~SAY()
{if(bmp!=NULL)
destroy_bitmap(bmp);
if(buf!=NULL)
destroy_bitmap(buf);
if(bak!=NULL)
destroy_bitmap(bak);
}
void SAY::Say(BITMAP *bitmap,char *s,int x,int y,int w,int h,char col)
{
int len=strlen(s)*16;
bmp=create_bitmap(w,h);
bak=create_bitmap(w,h);
buf=create_bitmap(w,h);
textout(bmp,s,0,20,col);
blit(bak,screen,0,0,x,y,w,h);
for(int i=0;i<=h;i++)
{
blit(buf,bak,0,0,0,0,w,h);
masked_blit(buf,bmp,0,0,0,i,w,h-i);
blit(bitmap,buf,x,y,0,0,w,h);
delay(time);
}
}
void SAY::Say_bitmap(BITMAP *bitmap,BITMAP *s,int x,int y,int w,int h)
{
bak=create_bitmap(w,h+1);
buf=create_bitmap(w,h+1);
blit(bak,screen,0,0,x,y,w,h);
for(int i=0;i<=h;i++)
{
blit(buf,bak,0,0,0,0,w,h);
masked_blit(buf,s,0,0,0,i,w,h-i);
blit(bitmap,buf,x,y,0,0,w,h);
delay(time);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?