📄 lc_bcb_83.html
字号:
<HTML><HEAD><TITLE>实现爆炸后的振动效果</TITLE>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
<META content="Microsoft FrontPage 4.0" name=GENERATOR>
<META content=FrontPage.Editor.Document name=ProgId></HEAD>
<BODY>
<CENTER></CENTER></DIV>
<CENTER>
<TABLE border=0 width="100%">
<TBODY>
<TR>
<TD align=left vAlign=top width="85%">
<P align=center>实现爆炸后的振动效果<BR><BR>(长春 石琳)
<P> 在许多游戏软件中,我们经常能看到这样的场面:当某一设施爆炸后,屏幕画面会伴随着轻微的振动,使人感到身临其境。笔者编写了一个函数void
MoveView(int x,int y);通过CRT控制器将屏幕视角左上角坐标移至
(x,y)处,使画面相对移动,从而产生振动效果。程序由Borland C++ 2.0编写,采用VGA
12H模式,代码小、速度快、运行效果形象逼真。<BR> // filename: SHAKE.cpp<BR> // maker:
ShiLin<BR> #include<BR> #include<BR> #include<BR> #include<BR> void
MoveView(int x,int y);<BR> void main(void){<BR> int
gdriver,gmode;<BR> gdriver=DETECT,gmode=0;<BR>
initgraph(&gdriver,&gmode,"BORLANDCBGI");<BR>
rectangle(100,100,200,200);<BR> outtextxy(100,250,"Press Any Key to
SHAKE ...");<BR> getch();<BR> for(int i=0;i<20;i++){<BR>
MoveView(10-random(20),5-random(10));<BR> delay(50);<BR> }<BR>
MoveView(0,0);<BR> getch();<BR> closegraph();<BR> }<BR> void
MoveView(int x,int y){<BR> union{<BR> unsigned int whole;<BR> char
low;<BR> }adr;<BR> unsigned char high,low;<BR>
adr.whole=y*80+x/8,<BR> low=adr.low,<BR> high=(unsigned
char)(adr.whole>>8);<BR> outportb(0x3D4,0X0C);<BR>
outportb(0x3D5,high);<BR> outportb(0x3D4,0x0D);<BR>
outportb(0x3D5,low);<BR> } </P></TD></TR></TBODY></TABLE></CENTER></DIV>
<P> </P></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -