Chamira Prasad Jayasinghe is an undergraduate at Sri Lanka Institute of Information Technology (SLIIT).He has been working on computer programming since he was 12. Chamira has started his carrier with GW-Basic and was able to develop software applications and games with Visual Basic 6.0 and C through his self studies. He is also interested in Artificial Intelligence Programming and DirectX Programming techniques. Chamira has also participated in many programming competitions and was able to achieve many awards. He has also represented Sri Lanka for APICTA in year 2007. Chamira is a programmer who has slight interests in performing underground street magic.
 

විෂුවල් බේසික් මගින් DirectX8 භාවිතා කර වීඩියෝ ක‍්‍රීඩා නිපදවීම

02/12/2009 9:25 pm By Chamira Jayasinghe | Articles: 7

1 පාඩම

මෙය DirectX8 කේතන මගින් වීඩියෝ ක‍්‍රීඩා නිපදවීම පිළිබඳව ලියැවෙන ලිපි පෙළෙහි පළමු වැනි ලිපිය වේ. මෙහිදී ඔබ මෙම ලිපිය කියවීමට පෙළඹ වූ කරුණු 3 ක් මම දකිමි. ඉන් පළමුවැන්න ඔබ DirectX8 කේතන ක‍්‍රමය භාවිතා කොට වීඩියෝ ක‍්‍රීඩාව නිපදවීමට දැඩි ආශාවක් ඇති අයෙකි. නැත්නම්, ඔබ DirectX7 මගින් වීඩියෝ ක‍්‍රීඩා නිපදවා දැන් ඔබට DirectX8 දක්වා වර්ධනය වීමට අවශ්‍යව ඇත. අනෙක වන්නේ ඔබ DirectX8 මගින් කේතන කර ගැටළු මතුව ඇත. මම මේ සියළු කරුණු සළකා ලබා පාඨක සැමට ඉතා සරලව හා නිරවුල්ව DirectX8 මගින් කේතන කරන්නේ කෙසේද යන්න පුළුල් ලෙස විග‍්‍රහ කිරීමට උත්සුක වෙමි.

ප‍්‍රථමයෙන් DirectX8 යනු කුමක්දැයි හඳුනාගැනීම වැදගත් වෙයි. DirectX යනු පරිගණකයේ දෘඩාංග වලට ඍජුවම කේතනය කළ හැකි Class ගොනු හා අතුරු මුහුණත්වල එකතුවකි. වීඩියෝ ක‍්‍රීඩා නිපදවීම දැන් ඉතා සුලභ දෙයකි. මන්ද යත්, වීඩියෝ ක‍්‍රීඩා එන්ජින් මඟින් මෙම ක‍්‍රියාවලිය ඉතා පහසුකර ඇති බැවිනි. උදාහරණ වශයෙන් Xna,Torque,Game Maker වැනි එන්ජින් හඳුන්වා දිය හැක. නමුත් මෙම එන්ජින් භාවිතා කිරීමේ අවාසි කිහිපයක් ඇත. ප‍්‍රධාන අවාසිය වන්නේ මෙම එන්ජින් වලින් නිපදවන ක‍්‍රීඩා භාවිතා කිරීමට අවශ්‍ය පරිගණක ධාරිතාව ඉහල වීමයි. තවද, මෙම ක‍්‍රීඩාවල ප‍්‍රමාණය DirectX ක‍්‍රීඩාවට සාපේක්‍ෂව ඉතා ඉහලයි. DirectX කේතන කිරීමේ යම්තාක් දුරට සංකීර්ණ වුවත් එම ක‍්‍රීඩාව නිපදවා අවසානයේ දී ඔබට දෘඩාංගයේ සිට එම ක‍්‍රීඩාව ක‍්‍රියාත්මක වන්නේ කෙසේද යන්න පිළිබඳව මනා අවබෝදයක් ලැබේ.

දැන් අපි පරිගණක ක‍්‍රීඩා නිපදවීමේ සංකල්ප කිහිපයක් හඳුනා ගනිමු. ප‍්‍රථමයෙන්ම කීමට අවශ්‍ය කරුණක් ඇත. පරිගණක ක‍්‍රීඩාවක් ක‍්‍රියාත්මක වනවා යනු යම්කිසි අපේක්‍ෂිත කරුණක් තෘප්ත වනතුරු loop 1ක් run වීමයි. ඒ අතරතුර දී අපට අවශ්‍ය වෙනස් කිරීම් සිදුකරයි. තවද, සුලභ වශයෙන් යෙදෙන වචනයක් ලෙස Frame Rate හඳුන්වා දියහැකිය. ඉන් අදහස් කරන්නේ මම උක්ත සඳහන් කළ ඛදදච තත්පර 1 කට කොපමණ වාරයක් ක‍්‍රියාත්මක වනවා දැයි කියාය.

දැන් අපි Visual Basic 6 මෘදුකාංගය මඟින් DirectX කේතනය කිරීමේ මූලික පියවර වෙත යොමු වෙමු.

ප‍්‍රථමයෙන් රූපයේ පරිදි EXE Application  එකක් තෝරාගන්න.  

 

 

ඉන් පසුව අපට DirectX8 Library  එක VB6  සමඟ සම්බන්ධ කළයුතු වෙයි. එය සිදුකරන ආකාරය 2,3 හි දැක්වෙයි.

 

 

 

දැන් අප මූලික අවශ්‍යතා සපුරාගෙන හමාරයි. දැන් අපිට ඇත්තේ කේතනය කිරීමයි. DirectX  කේතනය කිරීම් ආකාර බොහොමයක් ඇත. ඒවා අතුරින් මම මෙම ලිපියේ දී උත්සුක වන්නේ ඉතා සරල වූ කේතන ශෛලියක් උපයෝගී කොට ගෙන DirectX මඟින් වීඩියෝ ක‍්‍රීඩා රාමුව නිපදවා ගන්නේ කෙසේදැයි පාඨක ඔබට අදහසක් දීමටයි.

Private DirectX8 As DirectX8  //   ප‍්‍රධාන DirectX Obeject  එක
Private Direct3D As Direct3D8 // 3D  අවයව පාලනය කරවයි.
Private Direct3D_Device As Direct3DDevice8 // දෘඩාංගය පාලනය කිරීම පිළිබඳව වගකීම දරයි.
Private Running As Boolean // මා උක්ත සඳහන් කළ Game Loop  එක ක‍්‍රියාත්මක වෙනවාදැයි බලයි.


_____________________________________________________________________________
Private Sub Form_Activate()

    frmMain.Caption = "Digit.LK E Magazine"

    Dim Display_Mode As D3DDISPLAYMODE
    Dim Direct3D_Window As D3DPRESENT_PARAMETERS
    
    
    Set DirectX8 = New DirectX8
    Set Direct3D = DirectX8.Direct3DCreate()
    
    Direct3D.GetAdapterDisplayMode D3DADAPTER_DEFAULT, Display_Mode                                                     
                                                                   
    Direct3D_Window.Windowed = True
    Direct3D_Window.SwapEffect = D3DSWAPEFFECT_COPY_VSYNC
    Direct3D_Window.BackBufferFormat = Display_Mode.Format
    
    Set Direct3D_Device = Direct3D.CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, frmMain.hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, Direct3D_Window)

    Running = True

    Do While Running = True
        
        DoEvents
        
        Direct3D_Device.Clear 0, ByVal 0, D3DCLEAR_TARGET, D3DColorRGBA(0, 0, 0, 0), 1#, 0
        
        Direct3D_Device.Present ByVal 0, ByVal 0, 0, ByVal 0
        
    Loop

End Sub

මෙහිදී සිදුකර ඇත්තේ application පටන් ගැන්වීමේ දී  directx initialize  කිරීමයි.


Private Sub Form_Unload(Cancel As Integer)

    Running = False
    
    Set Direct3D_Device = Nothing
    Set Direct3D = Nothing
    Set DirectX8 = Nothing
    
    Unload Me
    End

End Sub

අවසානයේ දී පරිගණක මතකයට ගබඩා කළ දත්ත නිදහස් කිරීමක් සිදුකළ යුතුයි. මෙහිදී මා සිදුකර ඇත්තේ එයයි. ඔබට දැනට මෙම කේතන මඟින් සිදුවන දෙය පිළිබඳව පුළුල් අවබෝධයක් ලබාගැනීම අපහසු වෙයි. දැනට ඔබ මෙම කේතන භාවිතා කර හුරුවීමක් සිදුකරන්න. තවද msdn library   භාවිතා කිරීම මඟින් ඔබට බොහෝ දේ ඉගෙන ගත හැක. මෙම කේතන ගසා programme එක run කර බලන්න. ඔබට කළු පැහැති screen එකක් ලැබේ. දැන් ඔබ එහි පැහැය වෙනස් කිරීමට උත්සාහ දරන්න. මම මාගේ අනෙක් ලිපියෙන් එය සිදුකරන ආකාරය පිළිබඳව කියාදීමට බලාපොරොත්තු වෙමි. තවද, අප විසින් භාවිතා කළ කේතනයන් ගෙන් සිදුවන දෙය පිළිබඳව මනාව පහදාදීමටත් බලාපොරොත්තු වෙමි. ස්වයං අධ්‍යයනය මඟින් මිනිසා පරිපූර්ණ කරයි. එමනිසා, ඔබ දැනුම ගවේෂණය කිරීමට පෙළඹෙන්න. විශේෂයෙන් මා පාසල් වියේ සිටින නංගිලා මල්ලිලාගෙන් ඉල්ලා සිටින්නේ දැනුමට ආදරය කරන ලෙසයි. අනෙක් ලිපියේ දී හමුවෙමු.

Share/Save
Your rating: None Average: 5 (2 votes)

හොද වැඩක්

ඉක්මනට ඉතුරැ කොටස ප‍ටන් ගන්න

Nice work.

godak aya kamathi thamangema kiyana deyakata.ithin ewage deyak karanna hoda maga penweemak karana aya godak adui.e athin me karana de hugak agaya karanna watinawa.suba anagathayk wagema me wade digata karagena yanna suba pathanawa.....

Thanx..!!!

bohoma sthuthiy..!!!

Lets Make A Sinhala Cyber Space !!!

reply

after you install windows vista ,you can download the service pack 1 update.

Also XNA supports for Windows XP service pack2
and Windows Vista.

thanks
http://uditha.wordpress.com/

බොහෝම හොදයි මේක පටන් ගත්ත එක

බොහෝම හොදයි මේක පටන් ගත්ත එක අනේක ලිපිත් දාන්න

Post new comment