文字逐字上屏的实现(C代码)
来源:互联网 发布:淘宝基金赔付卖家 编辑:程序博客网 时间:2024/04/29 15:27
文字逐字上屏的实现(C代码)
最近突发奇想,想写一个小游戏《迷宫乐翻天》(下载地址:http://ggg82.go.nease.net/soft/migong.rar),游戏写好了,总觉得太单调,向在开始时设置一个问题逐字上屏的特效,琢磨了好半天,最终完成任务,拿出来与大家共享。
要文字逐字上屏,要计算好每个文字的宽度,每输出一个字后然后进行适当的延时。效果就出来了。纯粹的文字叙述不是最好的展示,就让代码说话吧!
void StepText(HDC hdc,RECT *rc,char *str)//文字逐字显示
{
int len=strlen(str);//计算字符串的长度
int posx;//当前字符位置
int posy=rc->top;
SIZE size;//存储每个字符的宽高
SetTextAlign(hdc,TA_UPDATECP|TA_LEFT|TA_TOP);//设置自动更新文字位置
while(len>0)
{
posx=rc->left;
MoveToEx(hdc,rc->left, posy,NULL);//移动到行首
while(len>=0)
{
int t;
if((str[0])<0) t=2;//中西字符辨别
else t=1;
GetTextExtentPoint32(hdc,str,t,&size);//获取字符宽高
if(posx+size.cx>rc->right) break;//若超出边界
posx+=size.cx;//更新当前位置
TextOut(hdc,0,0,str,t);//输出字符
str+=t;//更新字符
len-=t;//更新字符长度
if(len<=0) break;//若字符输出完毕
Sleep(60*t);//延时
}
posy+=size.cy; //进行移行处理
if((posy+size.cy+ size.cy)>=rc->bottom)//下一行无法书写,进行滚屏
{
RECT rect=*rc;
rect.top+=size.cy;//滚屏位置
ScrollDC(hdc,0,-size.cy,&rect,NULL,NULL,NULL);
posy-=size.cy; //恢复移行处理
}
}
}
好了,就这么简单,用vc生成一个Hello Word程序实例,将该代码加入,执行命令调用一下,效果还满意吧!
欢迎访问我的个人主页:http://ggg82.126.com 电子信箱:ggg82@126.com
- 文字逐字上屏的实现(C代码)
- 让文字实现在控件上的逐字显示(TextView为例)
- Android实现文字逐字显示出来效果
- 实现智能读报(逐字朗读+自动滚屏)
- R语言,一行代码实现高大上的“高考文字云”(附完整教程)
- SAD算法在opencv上的实现代码(c++)
- js 状态栏逐字显示文字
- TypewriterEffect ugui 文字 逐字显示
- python3实现逐字输出
- javascript 实现简单的逐字打印的效果
- 如何在Unity中实现逐字打印UI中的Text文字
- 利用在图片上中添加文字最终生成海报的代码实现
- 在屏幕上画图的C#实现代码
- jq实现逐字打印效果
- jQuery实现逐字打出效果
- 逐字出现的信息条
- 逐字出现的信息条
- copy是bug之源!!!对于复制的代码一定要逐字符检查!!!
- MIDP Canvas Repainting
- API解读:Thread
- Animating Images in MIDP
- 使用vb编写asp组件时最需要注意的事项
- 用手机打分机的常识
- 文字逐字上屏的实现(C代码)
- II6.0应用程序隔离模式
- 在RHEL AS 3上安装Oracle10g
- WinNT & Win2K下实现进程的完全隐藏
- 在RHEL AS 3上安装Oracle10g
- 老牌IDE:FreeRIDE
- Java技术文章
- HelloWorld常见问题
- JDBC 高级数据类型的应用