home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: rec.games.programmer
- Path: sparky!uunet!brunix!doorknob!scd
- From: scd@cs.brown.edu (Steven C. Dollins)
- Subject: Re: PC Graphics (animation)
- In-Reply-To: ssenkere@zeus.calpoly.edu's message of 21 Jan 93 08:22:35 GMT
- Message-ID: <SCD.93Jan21175136@nevar.cs.brown.edu>
- Sender: news@cs.brown.edu
- Organization: Dept. of Computer Science, Brown University
- References: <1993Jan21.082235.505680@zeus.calpoly.edu>
- Date: Thu, 21 Jan 1993 22:51:36 GMT
- Lines: 154
-
- In article <1993Jan21.082235.505680@zeus.calpoly.edu> ssenkere@zeus.calpoly.edu (Scott Senkeresty) writes:
-
- Our main question is how to move the paddles and ball. We have tried the
- obvious. Write over the current object in the background color, and redraw
- it at the new location. Several problems occured... Flickering,
- Jumpiness, and a slow down of things when the paddles move (ie ball moves
- quickly with no paddle movement, slower with 1 paddle movement, slowest with
- both).
-
- What is the logical way of doing this!? We think maybe we need to store the
- whole screen as a bitmap... manipulate our bitmap, and then somehow put it
- on the screen (notice the SOMEHOW, as in... beats us).
-
- As long as we are at it... there is the problem of the typematic key rates,
- etc. It would be nice to be able to press several keys at once, and have
- them be DOWN until let up... not repeating... It is our understanding that
- this would require writing an Int-9 handler. Any chance of just happening
- to come across some source code!? :-)
-
- Oh yes... I forgot something important... As of now, we are using just C.
- We have experimented with Steven Dollins' mode x library as well.
-
- So... get us going in the right direction at least! Please ?
-
-
- If you are using my mode X library, set the mode using
-
- SetModeX(1);
-
- to initialize it in double buffered mode. In this mode, all graphics
- calls write to the hidden page. To see the changes, swap pages with
-
- SwapPage();
-
- Piece of cake. Storing the screen as a bitmap is not necessary (and
- won't work with my library since I don't have support for bitmaps.)
-
- On the other hand, XLIB came out after I stopped programming PC's so
- chances are that it might be a better library for your purposes. My
- mode X library was written specifically for Xspace/Netspace, not to be
- a general purpose library.
-
-
- Xspace and Netspace store an array of flags, two for each key. One
- flag has the current state of the key, up or down, and the other is
- set only when the key is pressed. In your game loop, if the second
- flag is set, then the key was pressed within the past loop (note that
- it need no longer be pressed.) Act on the keypress and then reset it
- with the value of the first key.
-
- - Steven Dollins
- Brown Computer Graphics Group scd@cs.brown.edu
- --
- We have no theology. We have no philosophy. We dance.
-
-
- Here is the assembly source code used for the keyboard interrupt
- (int09) and the timer interrupt (int1C) in our games:
-
- begin 644 keyint.zip
- M4$L#!!0 ( 5_-1J7XR 5(04 ",5 * 2T5924Y4+D%33<58W6_;
- M-A!_C@'_#T1?EJ!:8+EPF@\46.KT(UBZ#DL>"@Q%0(F4I546!8J*[/]^1XH4
- M25EVD\[I]"**]\'['>^.)QY_^GSU[@;EF"_H>'3\ZO1D/(+WU>7=I1P@_91U
- ME&<Q0O??Z/I]CA?5>-0--0N)VO=T=H)(7:+#R9&5-\]XQ'*2%>+LGB5)106(
- M-2U%?Q>TD63+5]'%DA:BXX-ORV38PGE?GZ<NG#N,/856G^0:0%S<9?&W*D#W
- M27Y+8U80-9PYXT]940NJAK_3]3S%Q8(2<% KV6$GI'U/@)3DDG9P0)J#]K-5
- M9S@;EW/FTGQ2N_*@E+7$)VT@O(\Y)9F8L[H0E(]'E5I-?SJRX>G4$&<=U1!G
- MX]%2V3(@!V+^&I9VH@R">)M#%,K!Q:_[>4 3>F 90;<-+J\A5@[;3PC)"TEK
- MGXYXA.@J5MZJD$@I>J"Q8!QE!>J%X;D?OE95DXFT)RJ_,HF7UZ5 D<Y10F0
- MKO^X0V?I\3[!#H2MP0;.-T/#PEDLWPGFKER5JB"J7&U+]J#>>!7\1K# FQ12
- M!7BU163R:C8Y2_7\!?H ^6C] 10K!-/J/0T-NQ%"B%-1\T(Z]-WM^=LO6];J
- M[=. H9;'[-T0]BWXAM!-/72W;;6Q"!^%3C"$">&TJB3 J]OSJR^.7:Q$QJY-
- M$WJ( UII0_ #5;$'#$/6].5;;P21MXONTF:.2Y_U@XD6I&QS>)^IJPL\RMIT
- ME'Z%TR9BF#N0T&&;24?'7E+_13%IQ:H8%RAF!-*.LZ6:ZK1@**A+1K(DTRD/
- M%*LC4>>:2MECA.Z G&:+%$5K*+9@DSQ98.>D6,FJ3&0,"D5BU 163REWEI(W
- M80#>RRFNZ)N)5IBSIJ\O1$U*BTUK@$,K4F;G-!&H+K3UQ!.2O'HELN<*8_:D
- M"Y%=9<3-&3,7K9ZAW$#6&)&3B9->%V@!3K41 'R7-P&,"\%9KCT/<Q\WUXA6
- ML 9R554RI3 (EVLI]-;)43@V%FK]-,"Y+P2)(G=5VK&Q[(W5P+A&D >G/H(8
- M]I%W(>M(U&T].0G]166\0!@.Y#S6[0.L\?I]NDW3P$;DP=2WJ8*$!T@%Y7#*
- MO/M\#0@WU8',AF%_7GOME;$(G#V93%XGMI!6@F<EK S> G5>'EOQ*LV->.AX
- M'<27=2ZR,E^#KY%HF-D!5G-DZKY5<X&R+FU1@VWN!&JV3?I,F!S5A_J /9'0
- ML,">F6\/4^48-%AMA2X>,>9\K8J-@XR*0N:5"I52</1WUVB_C%8OPZ]J$P1Z
- M<5VAB&;%PM2&%SU%_\3&58RK-2=GA!5T%^:&_L(IDEP#63%HSU=PO[;G(Y8&
- M02G:8H]1Y/>"D+6=JT!.YHHB@W_;7E'5Q;:W'-#E]KE.),@HPF O9$-7\5.P
- M+S:]>>>.\]UGGIGS:I>><VM<I@['?HE\GL-1-;*F=PWGNSI;H'ZOM;5_1.>]
- M?ZD?;F[#^<_J;N4OFQT;II_8WP+4+N3\_A8H^^]O[6;M:'"=#1Q"OP7A$+ZI
- MA^]_ZG MYA]L<3M_/+7'[2+J.9M<6,3I<NL*2AZA259 8R>R)>7]?A=VQ#2\
- M>[/%5*X.\-.;NSTT<NUY11H&Q5H>-/K^9#PZ *=AI.,GUW$H2N=%6WMT^=
- ML'>+$803YUQ<:!%S+H9S_\3#^J)FFRYY#]*'8XWN;HD\^PB->WR]6Y>MC/Z-
- MRQ-@;)CF:PIFNU','@7#N_3Y+\9YBH+P.R[6-V[*MD[[(X_R;<>V#7Z;[C :
- MC_X%4$L#!!0 ( "F -1IG 1!"P, ),* ( 2T5924Y4+DAUEEMO
- MVC 8AN\K]3]8Z@VTDXI33E6UBS0XD)%3X]#3-"$$IHN*THG0;=6T_[X<2/Q^
- MM..&-(\_GGZ._3HGR3I=J36;B@?'C^>.;[FSD1@='YWD=Y-4O0?'1^>G;*K>
- M6#4@8Z?G>O2SD!9K/@: P!<:= '$=X$&?0232#0U0P!V,(OJ^[R#P+EM"CC*
- MI7/?*#C*I;@5?@U0+ISQ)*X!RGU'-V*@_%%$32,&RCW'G\D:H%S<S$RW!BB_
- M-JVI#$VK$!DHC\WKIH\+E-_H*607*+]#0.0(4!XA('( 790_($#Y# '*'00H
- M#Q"@/ 300[D[OXZJF<H!RB,$I',_%G63/91;<>0V#I2;(.^C7") ^0@!RFT$
- M*!\C0/D$P #E7Q"@?(H Y2Z"/MD&GF,%;E!LA0'*;V9!7*^48>=@B=9P:)#G
- M(2>.7:V58?=P4;NF+/H9HOP1_JLARN\!7*+<0H#R6P1$C@#E/@*4>_H^[Q!Y
- MX'EF#5 >BL@)1GM 0F;?=0G(5M-SQ3LH'T?B82YC,U^FG"2<Z3:[D-.$"^NU
- MG@.46V8HW<":E@#E-M<-DH2S#0U(PMD7 %!N=P&0U=X#0.1] $0^T( DG#T$
- M0.27 (B<=S0@SWSF[6<D!RB75N36<T42;A)X]2[@-.%T+G&2<*$Y%O.*<I)P
- MY:.MC@1.$LX5=G/@D(0K*ZJCC=.$TV<4)PE75H1N<>IPDG#";X*)DX0;!7?Z
- M&.P<]E%13A+.\:6(XGT%RD?"%?O,X$7"D2?2K#D^H(_*T*"L4;]W:INRY??%
- MECVK-WNS>,J^&KW^MZN&_7Q)5DS^6OQPTMUEJ_JS_3'F%O!FQ.8E?6)IG"R?
- M,UV6I#NVWA0W/^7?4BU?TE5QU=.77I*^[M1A2?Y*9'U?I$\J'[/<JE6RLUY>
- MTWS %<Y!K+)=/K)5-,7:C+5.6W5[9_E%NZV'2D5&LC\'0]EGUBKFI\VO_NHJ
- M:Z,66ZC[;U4'JR*5$=L'5?3.&6]C?5[J9.%699E:U;_1>E?1+F="I:MDS5CQ
- M%DG?+<LWR>.C?U!+ P04 " #%AC4:YABX=X$& "0#@ "0 $M%641%
- M34\N0X5776_<-A!\C@#]AZW[8#NY^*,MC 2&'P+':8P@3I$/I'TI0$F\$VN)
- M5$C*\B7(?^_L4M*=FS@- N-.(KG#V=G9O<.'>99G[VL3"/\5!=5VC:9S"J[W
- MI:;259J6!H]BK2)5NG4V1*^B#E2[@:*C/O!+G6?7>ETXY2M2MJ)H6NW)NSX:
- MB[6R6WG-JRLREG?02K5X]6?H%")A4YY=Z2C?#A(J38TIO/)KWA9D3Z/\2E,+
- M''C: ETCX;S^U!NO^0J_/CDAY^FW)R?S*3,R8Z/VON\B-G0- @5^=/3T@.C*
- M1;V@05/ER+I(9:T TT1^EF?C<GS'4C[2-7(:'3VMF3FK;W#=4C6-3O='R$ =
- M$/%]<?$\2TNZ/D[7GU$5_7*)5^"R0'BMFDB#B345:UG7AUXU%/5MS+,:9S?&
- MKF9F ><2&=&J$O M0$<&KBBJ FES2UHV:A46% ='2^?S3*NRYN#D[N(8;[9C
- MPN-"(\;C$?Z.G(#C:U/R9?.L[RHHH)H 6CU,7"QF!"E=9>^]QJL0L8'!C $7
- M>3:1@UPQW^/7B5ZL\V/<G5HQ(FUG0 NF/&CPX6RS!C#-%^8KF2W2D05\[2U4
- M8I8&3V3="(!?>=UHQ3'S;.]RD\LQBP4P_.!H>6.B\#$?M#\I[EO,<ID4%<A9
- M \XF1I"704$ME>ZTK3BYSN89XUSVMHS&6=68N-YB#R2] &VEL]! [WK(7M:)
- MZA84>N1)A525RGO4J<AQKKW>6X0!B_.)WR49>HKJ>JQNU77>==YP'E.T32#O
- MD%X&SJ?=WPYT(% S!B!LR5Y$MNQ41 [+)8-?VLBWN4)Y( <2")(:=#<!</
- M!VHJ\.:&,4=W(-.WB&<P>8:$W:1E H=3 DBH?:14K92D9Q3W+<2I@E3:DJ;8
- M>18,K!(%H+HPL_CLZJ^/+R_>7FP['#7.=8)L,$V#2!R6_=8F8N^32BHWV2/\
- MP1N2=,0;^/3/VKO$( KA_RADP<#?\:K16W+9)/'BW3F.X471K7C11&B*&K^O
- M:KXUB!,HP8G/;R6H[4.<RFPFB9,@^S=<XP0XK%8I3$(G[OTAB*S8NI*+B4';
- MW4BUY ^EXSPZ@2K@A]2:(.L5H1N4UQQ- N49R,2-L)E[4-&'-=,?7#LY3:=\
- MG&0(U:R\:L'9,W!_>?A&:KS$SF7?(.->H_T4VH]&L&78HIIF+97=N%*-U_A@
- MX;NQMQ!B TIGWQ^OG&01^>\UHTY\1&]6*^X*8VN=O.=."]-LPWQFT<>DJLKI
- MP/1(TP"44G%_5FRW#OV@%5;?6+DE?Y_4)(*<3C:I82]8+J7><,[.*!2%-5I.
- MFV=3!QRUZGITQ7HJ+*L"7"L83! :#:X4@D-$LYNLPEBTPSQ+_4]R6RJ. [D8
- M8&=F$SZ,'%JU03+$]1C7W:;]L-)PK4LV@25B3NI.Q6?@!M-8L>"9A=OP8MXH
- M+6+D*CK&$D30@[*3([1<((,W[' 0Q4>@U)Y;'$,47N::1AEMJ.9N2QBC! @V
- M/M_R=UKS"SA48Y),%NE)"YDJ'G#4.L]N,/E(OAX>\M\\^QGI:'KPN0-!@/N#
- M>H<?WSA32=_=(_F(+O0ESXBD*0.A/CM:C$5]C#B="Z>\[? AT>^H;$PV:Q!A
- MF2X6M++KL2J$:TD2+;UK$]-$"0YOO[1@!=WI,ZS.JPXJ"#*4+0@#@N*T]26Z
- MC4;AZEC.6P'MW: Z]-RG>_NGV]^/S^6!/ +U7\:/^(=PW%A?'"</*6-B>[S7
- M@LUG+&\I01&S#C%U/ .5/=AJV1AI?=B:.1A6"H.6N/<>^U[I]1Y=(]K^/J-X
- M,/%'?Y_1\2D_.$>F_&;9Z0CRW>B54Y<[VC[]Z^8^=P/!?.=(G#&:HN#$*PRD
- M&O? 827'G(UT',M0H*)"-(A"E=?WQ!OYZSM*$X&,^]^=((1+P$M,B3$Q$FDK
- M\P@D7 [\V\":4,ON).PT,2=3DW;*>Y/+2ROEX>-^PC_\,=/ .GWT2$AXRQUH
- ML^ ^JK<'3N8'!QBQX'L9>>W@5:[X!^84#C;B3"\O/'<M5 -*6PP+7MUB0\77
- MK$U5@8$.Q;I]/+8]]VJ8SAR;O/$R(T]XPH\/X%+ %%5I)V^_!?9*9@+\P,)P
- MB^R@-KETX2V!69A_ O36P(':Y(.A@X12&N. #D[')Z]??N8?2^%V-TC=G\@3
- M_&ZJ;G_9#=N@4O?<6S;ON3^=G=$1<O1U>CL]IJ.I<K]..WYB+<\%?;?&_VL"
- MDIE_ 5!+ 0(4 !0 ( 5_-1J7XR 5(04 ",5 * $
- M !+15E)3E0N05--4$L! A0 % @ *8 U&F< !$$+ P DPH @
- M 0 204 $M%64E.5"Y(4$L! A0 % @ Q88U&N88N'>!
- M!@ D X D 0 >@@ $M%641%34\N0U!+!08 P #
- + *4 B#P
-
- end
-
-