数学建模社区-数学中国

标题: 实现爆炸后的振动效果 [打印本页]

作者: 韩冰    时间: 2005-1-26 12:48
标题: 实现爆炸后的振动效果

(长春 石琳) 8 J" N+ _4 v5 H5 [9 [

. {% }6 i/ n) G9 ? \" }- l

- Y h* g- c3 l# ~ _, s" O

7 C" X7 q0 r# o# L* c2 I   在许多游戏软件中,我们经常能看到这样的场面:当某一设施爆炸后,屏幕画面会伴随着轻微的振动,使人感到身临其境。笔者编写了一个函数void MoveView(int x,int y);通过CRT控制器将屏幕视角左上角坐标移至 (x,y)处,使画面相对移动,从而产生振动效果。程序由Borland C++ 2.0编写,采用VGA 12H模式,代码小、速度快、运行效果形象逼真。+ ~7 {: r! E! Q. X" Y7 G   // filename: SHAKE.cpp" i8 o% |" n+ w1 P   // maker: ShiLin " b- a) G. }/ u% N: f3 h0 C2 S$ ]% v  #include ' Q5 x9 u7 ^+ j  #include * P+ G" `7 ~8 j$ N. m1 R5 J  #include . \7 S0 D! O8 o, f. I% V* v  #include/ K. @7 T+ M& y7 {4 C   void MoveView(int x,int y); 6 \* r9 O/ W/ C4 f( y: A  void main(void){ ! v# V, J7 J! c) S0 m   int gdriver,gmode; . E; ^) @0 \4 R6 C) `% P1 ^3 @   gdriver=DETECT,gmode=0; & V9 n; E R) K$ u1 \8 H   initgraph(&gdriver,&gmode,"BORLANDCBGI"); - d7 f$ |5 J( K: R& h( d   rectangle(100,100,200,200);. [9 k2 |# u* M7 B. N    outtextxy(100,250,"Press Any Key to SHAKE ...");5 W8 j8 t* }" A2 y, t5 [+ g& y    getch();5 s1 u/ s2 W+ X5 V( k$ ?& ?7 b    for(int i=0;i<20;i++){ 2 e: h9 V8 y$ H) l9 R5 {) Q   MoveView(10-random(20),5-random(10)); , v* w2 h9 u6 t. O; h   delay(50); 7 A5 b8 I2 {8 X9 J; x0 n( G6 Q) }   } + A# \% w) n1 {) Y# ~   MoveView(0,0); # m4 R7 D. N! m: g( h5 V- c) h _   getch(); 0 ]3 s7 l7 {0 A2 F0 e7 _   closegraph(); 5 H+ ~0 O" [: x n6 {% E   } $ \# s1 U* W8 ?  void MoveView(int x,int y){6 b3 h% J% `5 _0 ~: y, R! w2 ?    union{0 Z. c7 D# k5 t' i% u9 I    unsigned int whole; 3 V) F9 {: l% D   char low; ; P4 z4 Y' |8 @ p& i& r6 t   }adr;3 m2 Z% w7 Q! g3 V) I n- m    unsigned char high,low; ' o& e, U9 w0 C& S! I4 y   adr.whole=y*80+x/8, % k* L7 ]3 u+ m/ ?. `   low=adr.low, + z/ H+ z# m" Q: R3 ?   high=(unsigned char)(adr.whole>>8); - b0 ?3 h0 j4 x" l3 s5 {1 D' P' X   outportb(0x3D4,0X0C); 0 ~: Q6 L& M# G3 ^# e$ f3 ^   outportb(0x3D5,high); ) G7 `# h8 |) l   outportb(0x3D4,0x0D); $ Q; X# D" m# V& ]) D8 u. c2 y8 M   outportb(0x3D5,low); 8 d' L h* E1 _$ u. ]2 b+ i$ Z   } 4 @3 N2 p! }. C






欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5