From a6f586b573d2e91cedd6dc2e7ad93290de3db70e Mon Sep 17 00:00:00 2001 From: Patrick Mast Date: Wed, 28 Jul 1999 17:27:35 +0000 Subject: [PATCH] Added Jesus's DirectX dir --- harbour/directx/buvcdx.bat | 2 + harbour/directx/directx.lib | Bin 0 -> 5680 bytes harbour/directx/lib/vc/ddraw.lib | Bin 0 -> 206 bytes harbour/directx/media/anima2.bmp | Bin 0 -> 21988 bytes harbour/directx/media/black.bmp | Bin 0 -> 38462 bytes harbour/directx/media/brick1.bmp | Bin 0 -> 867 bytes harbour/directx/media/brick2.bmp | Bin 0 -> 1190 bytes harbour/directx/media/brick3.bmp | Bin 0 -> 1013 bytes harbour/directx/media/shot.bmp | Bin 0 -> 65 bytes harbour/directx/readme.1st | 80 +++++++++++++ harbour/directx/samples/testdx.prg | 174 +++++++++++++++++++++++++++++ 11 files changed, 256 insertions(+) create mode 100644 harbour/directx/buvcdx.bat create mode 100644 harbour/directx/directx.lib create mode 100644 harbour/directx/lib/vc/ddraw.lib create mode 100644 harbour/directx/media/anima2.bmp create mode 100644 harbour/directx/media/black.bmp create mode 100644 harbour/directx/media/brick1.bmp create mode 100644 harbour/directx/media/brick2.bmp create mode 100644 harbour/directx/media/brick3.bmp create mode 100644 harbour/directx/media/shot.bmp create mode 100644 harbour/directx/readme.1st create mode 100644 harbour/directx/samples/testdx.prg diff --git a/harbour/directx/buvcdx.bat b/harbour/directx/buvcdx.bat new file mode 100644 index 0000000000..079bfef97c --- /dev/null +++ b/harbour/directx/buvcdx.bat @@ -0,0 +1,2 @@ +..\..\bin\harbour %1 /n +cl -Fd..\..\bin\harbour -w -Zi -TP -GZ -GA -DDEBUG -DHARBOUR_USE_GTAPI -DHARBOUR_USE_WIN_GTAPI -I..\..\include %1.c /link /subsystem:WINDOWS /NODEFAULTLIB:libcd.lib ..\..\obj\symbols.obj ..\..\libs\vc\harbour.lib ..\..\libs\vc\terminal.lib libc.lib user32.lib ..\..\Contrib\DirectX\directx\release\directx.lib ..\..\libs\win32\directx\lib\vc\ddraw.lib gdi32.lib \ No newline at end of file diff --git a/harbour/directx/directx.lib b/harbour/directx/directx.lib new file mode 100644 index 0000000000000000000000000000000000000000..47bf2ec1d77db1f0780db941399449312b5b9262 GIT binary patch literal 5680 zcmeHLJ8$Dg5T=13g^I+*l~*``Ygy65IRQbqB$uQ}@fDIj*@pvYO5C&Qqey|G?Nh20 zsne#(f5>0RF9=fJk4cf?LlR%gqq{{dRU{xcaNn&~=Fp|RKsu7C>kx>!G zvHMJq$cKc4fVbYPt7aUMV7=Uviq)`chmklDr$~uhk6o^$Fo{}S!$=nd8F6k%ze?y) z0Os_F^^>K$qHBl(;w23uE+%e5wqUJW5zs_2G^9oJsMwAa`iTz_`hj>=H$^1MnvA}G zB=H8EBzg2&QAMN~jFCnW`|DNUZq&#l?Xi>)o-*+AW3ounfaXrO8&8owm3btRgh>*2 zaZkK|+?;}VtYpdLqG&~8H}Ri{LY_#_4zD6nVimN=!nTN(E0{13z;SOukKVa{03o@o z1O>}T6O>67zhxAIDaM6MYkEYF>2s{pBgJ3(kTHN=?8;Yx@{u%n>6*!Fm^Ul98d6yn zqJp_-wJCC(7eB_1Wmvo|X|H+H<}pGy%=Psfik`3z=s1&SY#s{5f*!B2lC44_+H5St zlx)6LHG|^OXEhbZCNr~a#U{*CG&DO0e zQ((CI;;JRG`gLtt%it8AF|lOwoGs~ELoM?5YsrGV)!{4yR86>4c+-Z`6zUqMD+++O zEURmRWLmahGHP>SUDL1ZJOhoDw)t)-AgPCU2}+fL*w*u%)qhlLUOx87rO*o}VY^`EHA-S%! z#7;Z_{B`2&#?02$nIC39HZ@c@gck4jiW1}9DVBtteZ5c(2^aV)IJ7B80>jc;4MD#l88#$` zz_=)gVlE1kI0_n*M0dG#4=D{dAW1?RlZwJWByT!fOc)%R0h`%=ESa~en=J0B|II>& zt65j^78Dg-y4rdneA;yIk};J>Hhl7ZxE#VDm>|_c@FY;lcK(zX4+lMtJ}L literal 0 HcmV?d00001 diff --git a/harbour/directx/lib/vc/ddraw.lib b/harbour/directx/lib/vc/ddraw.lib new file mode 100644 index 0000000000000000000000000000000000000000..f6866a01be0a177b6a9256a57d3ef7fc9c0f4525 GIT binary patch literal 206 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 literal 0 HcmV?d00001 diff --git a/harbour/directx/media/brick2.bmp b/harbour/directx/media/brick2.bmp new file mode 100644 index 0000000000000000000000000000000000000000..c3f7b55418c77a052bb7ee1a6c1f106f4b5c6e45 GIT binary patch literal 1190 zcmdUr;V)ZJ7{;I0THWnUo7vK3vH5^y-G{}{79DBTtu}4%)es?s2q8ik5e*?ih!8@A z5aQ1e%VZ*3wk)ess+20F`iJaXl3SBIzHV>woV+=|=Y7tbV__fBxGs+b(2{PANKGVx z;`*LHQj|Axlb)Bs@C$nV59oB?h`u5>cMCZ=8_3T7M6`~)JTLM5B%betZ4!MU{4>(h zKBAz&3!~AC!oqD76>Y<0^1*EO!D8`&VRm4(?!ac-h26djhr(wFjuH3!=V0h=ztB8XFJM)O3jE<|DMU9HF%}gtoR2 z+S^0u=r~4a=P|mvPSD+bf}Wl*dV9n0c*5xGJ4Jv0DFy~27#xgXXeff=;WLbkoMCkI z9AjhW7$1*fVj_yk$tb3#E-*cPfti_0%+6k7ZZ3xT`4|=!Vpv?f!qU(N1 z=rf;5DS_X5S57NZvrKjuS=#*mrJ7H>MTH4j($frsmALF;RIrK8{zhcNm~gW$%8rt0o1Gii!#{1SzC# zpU0QXeZO!?bR5^rZIqi@x!U!K^6nPyyDU6#_wsPS$|H}BSHoUjhCI9$eiQc5I2oZ~ zB24qt2u-3}V^LbBN9kFJVOgBPx-^Szc@F!^Jbl7}uj}}?)(CyuASn8#y_*}hPAaTM zu3I{|Vr-_&&_ro_1GoB3RP-7s>uBUm>1A%q{*J@UU1tyXWUfk2A5~sEPX--4_Vx2@ z$jMXD&;2f{18!;rFMS8KQnPK%MCKV#u%>SsX zpFI^{2J`l%zT9Bs0I_}v_irR5i^6-8ZAn3sB3lW0sNYxf*Hk(XJbSM*sI^3#uJ uYa}e;?j&nfhfZe{W$E?m;w0`)ThhC`+`@Aw52zBO>~eE8*{Np>F8%~Sr1qx( literal 0 HcmV?d00001 diff --git a/harbour/directx/media/shot.bmp b/harbour/directx/media/shot.bmp new file mode 100644 index 0000000000000000000000000000000000000000..3796ca47d71004246e59118cd4131463588f66cb GIT binary patch literal 65 vcmZ?rO=D*O12Z700mO1ZECR%g3=%++fx!SMe}oT$!2&?yKLZaCfp`l6qUr`X literal 0 HcmV?d00001 diff --git a/harbour/directx/readme.1st b/harbour/directx/readme.1st new file mode 100644 index 0000000000..1cda0fc59b --- /dev/null +++ b/harbour/directx/readme.1st @@ -0,0 +1,80 @@ +/* + * Copyright(C) 1999 by Jesus Salas + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR + * + * You can contact me at: jsalas@gruposp.com jsalas@sp-editores.es + * + */ + + + Harbour - GAL Lib - DirectX 6.1 ( DDraw implementation for Windows ) +------------------------------------------------------------------------------------------- + + Well, this is the first implementation of Graphics Animation Library + for Windows/DirectX 6.1 and Harbour + + + 1)._ What do you need for make/run the samples. + + - A Windows 95/98 ( Nt don't support DirectX 6 ) + - MSVC 6.0 ( BC coming soon ) + - DirectX 6.1 Run-Time ( you can download it from + http://www.microsoft.com/directx ) + + - Set your resolution to 640x480 before running the sample. + + 2)._ Files in this distribution. ( HDx01.zip ) + + /DirectX/DirectX.lib -> Lib for Harbour + + /DirectX/lib/Ddraw.lib -> Lib from MS for VC ( DirectX SDK ) + + /DirectX/BuVcDx.Bat -> Bat file for Build the sample for MSVC 6.0 + + /DirectX/Samples/TestDX.Prg -> a BreakOut like sample Game + + /DirectX/Media -> Media files for the sample ( .bmp files ) + + 3)._ Building the sample + + copy TestDx.prg to /harbour/tests/working/ + copy BuVcDx.bat ro /harbour/tests/working/ + + 1) harbour testdx + 2) BuVcDx testdx + 3) copy .exe to a directory with media files + + Run the EXE! + + Keys for the sample: + + Space -> Shot. + Cursor Left -> Bunny go to left. + Cursor Right -> Bunny go to right. + Shift hold down -> Bunny Turbo mode on. + + 4)._ Considerations. + + You need to have the media files into the same directory of final .exe file + + The source file for DirectX for harbour is not released for now, but in a short time + it will be released. ;) ( i'm cleaning the code ) + + + Please if you test/use it... send to me feedback for continue supporting it! + + Enjoy it! + + Regards + Jesús Salas + Spain + jsalas@gruposp.com + + + + + + diff --git a/harbour/directx/samples/testdx.prg b/harbour/directx/samples/testdx.prg new file mode 100644 index 0000000000..cff245432d --- /dev/null +++ b/harbour/directx/samples/testdx.prg @@ -0,0 +1,174 @@ + Static spBunny + Static spShots + Static nShotsActive + Static spaBreaks + Static spTorretShot + Static spTorretShot2 + Static spTorretShot3 + Static spTorretShot4 + Static spTorretShot5 + Static spTorretSequencer + Static spBunnyLife + Static spOuch + Static sppq + Static spzan + + Function Main() + + m_hWnd = dd_CreateWindow() + + // Background........... + + sfBack = dd_CreateOffScreenBitmap(NIL,NIL) + dd_LoadBmpIntoSurface( sfBack, "black.bmp", 0 , 0, 640, 480 ) + spBack = dd_CreateSprite( sfBack, "background", 640, 480, 1, 101, .t., 240 ) + dd_SPSetXY( spBack, 0,0) + + + // Bricks...... + + sfBreak1 = dd_CreateOffScreenBitmap(NIL,NIL) + dd_LoadBmpIntoSurface( sfBreak1, "brick1.bmp", 0 , 0, 640, 480 ) + + sfBreak2 = dd_CreateOffScreenBitmap(NIL,NIL) + dd_LoadBmpIntoSurface( sfBreak2, "brick2.bmp", 0 , 0, 640, 480 ) + + sfBreak3 = dd_CreateOffScreenBitmap(NIL,NIL) + dd_LoadBmpIntoSurface( sfBreak3, "brick3.bmp", 0 , 0, 640, 480 ) + + spaBreaks = Array(80) + nCont = 1 + for t=1 to 80 + if nCont = 3 + spaBreaks[t] = dd_CreateSprite( sfBreak3, "Break", 30, 15, 6, 100, .f., 240 ) + nCont = 1 + else + if nCont = 2 + spaBreaks[t] = dd_CreateSprite( sfBreak2, "Break", 30, 15, 6, 100, .f., 240 ) + nCont = 3 + else + if nCont = 1 + spaBreaks[t] = dd_CreateSprite( sfBreak1, "Break", 30, 15, 6, 100, .f., 240 ) + nCont = 2 + end if + end if + end if + + dd_SPSetSolid( spaBreaks[t], .t. ) + dd_SPSetVisible( spaBreaks[t], .t. ) + dd_SPOnCollision( spaBreaks[t], "BRICK_ONCOLLISION" ) + next + + for t=1 to 20 + dd_SPSetXY( spaBreaks[t], t*30 + 5,10 ) + next + for t=21 to 40 + dd_SPSetXY( spaBreaks[t], ( t - 20 ) * 30 + 12,25 ) + next + for t=41 to 60 + dd_SPSetXY( spaBreaks[t], ( t - 40 ) * 30+ 5 ,40 ) + next + for t=61 to 80 + dd_SPSetXY( spaBreaks[t], ( t - 60 ) * 30 + 12,55 ) + next + + // Shots...... + + sfShot = dd_CreateOffScreenBitmap(NIL,NIL) + dd_LoadBmpIntoSurface( sfShot, "shot.bmp", 0 , 0, 640, 480 ) + spShots = Array( 10 ) + nShotsActive = 1 + + for t=1 to 10 + spShots[t] = dd_CreateSprite( sfShot, "Shot", 10, 20, 3, 100, .f., 240 ) + dd_SPSetSolid( spShots[ t ], .t. ) + dd_SPSetMasked( spShots[ t ], .t. ) + dd_SPOnOutScreen( spShots[ t ], "SHOT_OUTOFBOUND" ) + next + + + // Bunny.......... + + sfBunny = dd_CreateOffScreenBitmap(NIL,NIL) + dd_LoadBmpIntoSurface( sfBunny, "anima2.bmp", 0 , 0, 640, 480 ) + spBunny = dd_CreateSprite( sfBunny, "bunny",70,52 , 6, 101, .t., 240 ) + + dd_SPSetMasked( spBunny, .t. ) + dd_SPSetXY( spBunny, 0, 420 ) + dd_SPOnFirstFrame( spBunny, "BUNNY_ONFIRSTFRAME" ) + dd_SPSetVisible( spBunny , .t. ) + + spBunnyLife = 4 + + dd_StartWindow( m_hWnd ) + + + return + + +//-------------------------------------------------------------// + + function Brick_OnCollision( nMe, nCollided ) + lOk = .f. + for t=1 to 10 + if nCollided = spShots[t] + lOk = .t. + end if + next + if lOk + dd_SPSetVisible( nCollided, .f. ) + dd_SPSetVisible( nMe, .f. ) + end if + return + +//-------------------------------------------------------------// + + function Shot_OutOfBound( nShot ) + dd_SPSetVisible( nShot, .f. ) + return + +//-------------------------------------------------------------// + + function Bunny_OnFirstFrame( ) + + if dd_isKeyPressed( 16 ) + plusVelo = 2 + else + plusVelo = 1 + end if + + dd_SPClearDirection( spBunny ) + + if dd_isKeyPressed( 39 ) + dd_SPSetDirection( spBunny, 6, 8 * plusVelo , 0 ) + end if + + if dd_isKeyPressed( 37 ) + dd_SPSetDirection( spBunny, 4, -8 * plusVelo , 0 ) + end if + + return + +//-------------------------------------------------------------// + + function ddOnRender() + + if dd_isKeyPressed( 32 ) + if spBunnyLife > 0 + dd_SPClearDirection( spShots[ nShotsActive ] ) + dd_SPSetDirection( spShots[nShotsActive] , 6 , 0 , (-15) ) + + x = dd_SPGetX( spBunny ) + y = dd_SPGetY( spBunny ) + + dd_SPSetXY( spShots[nShotsActive], x, y - 20 ) + dd_SPSetVisible( spShots[nShotsActive], .t. ) + nShotsActive += 1 + if nShotsActive > 10 + nShotsActive = 1 + end if + end if + end if + return + +//-------------------------------------------------------------// \ No newline at end of file