<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Techකතා The Magazine</title>
	<atom:link href="http://www.techkathamag.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.techkathamag.com</link>
	<description>සිංහල තාක්ෂණික සඟරාව</description>
	<lastBuildDate>Thu, 06 Jun 2013 01:00:04 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>යු.පි.එස් ගැන සරල විස්රරයක් වගේම බැටරිය මාරුකිරීම. [How to Replace a UPS Battery]</title>
		<link>http://www.techkathamag.com/how-to-replace-a-ups-battery/</link>
		<comments>http://www.techkathamag.com/how-to-replace-a-ups-battery/#comments</comments>
		<pubDate>Thu, 06 Jun 2013 01:00:04 +0000</pubDate>
		<dc:creator>කාලිංග</dc:creator>
				<category><![CDATA[Guides]]></category>
		<category><![CDATA[Help]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[Battery]]></category>
		<category><![CDATA[UPS]]></category>

		<guid isPermaLink="false">http://www.techkathamag.com/?p=543</guid>
		<description><![CDATA[යු.පි.එස් එකක බැටරිය මාරු කිරීම]]></description>
				<content:encoded><![CDATA[<p>යු.පි.එස් එකක බැටරිය මාරු කිරීම වගේම යු.පි.එස් ගැන සරල විස්රරයක්.</p>
<p><iframe src="https://www.youtube.com/embed/NDQN-zRDc-0" height="315" width="560" allowfullscreen="" frameborder="0"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.techkathamag.com/how-to-replace-a-ups-battery/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Game Development : 05වන පාඩම</title>
		<link>http://www.techkathamag.com/game-development-lesson05/</link>
		<comments>http://www.techkathamag.com/game-development-lesson05/#comments</comments>
		<pubDate>Mon, 27 May 2013 07:05:48 +0000</pubDate>
		<dc:creator>චම්ලි</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.techkathamag.com/?p=533</guid>
		<description><![CDATA[&#8220;Techකතා Game Development&#8221; පාඩම මාලාවේ]]></description>
				<content:encoded><![CDATA[<p>&#8220;Techකතා Game Development&#8221; පාඩම මාලාවේ 05වන පාඩම මෙය වනඅතර මෙම පාඩම ඔබවෙත ගෙන එන්නේ වීඩියෝ වැඩසහටහනක් ලෙසටය.</p>
<p>&nbsp;</p>
<p><a href="http://www.youtube.com/watch?v=OfgdkAijiwY"><img src="http://img.youtube.com/vi/OfgdkAijiwY/2.jpg"></a></p>
<p><a href="http://www.youtube.com/watch?v=OfgdkAijiwY">Click here to view the video on YouTube</a>.</p>

<p>&nbsp;</p>
<p><a href="http://www.techkathamag.com/wp-content/uploads/2013/05/Collision.zip" target="_blank">(මෙවර වැඩසටහන මෙතනින් ගන්න)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.techkathamag.com/game-development-lesson05/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Game Development : 04වන පාඩම</title>
		<link>http://www.techkathamag.com/game-development-lesson04/</link>
		<comments>http://www.techkathamag.com/game-development-lesson04/#comments</comments>
		<pubDate>Sat, 25 May 2013 01:18:41 +0000</pubDate>
		<dc:creator>චම්ලි</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Guides]]></category>
		<category><![CDATA[How To]]></category>

		<guid isPermaLink="false">http://www.techkathamag.com/?p=521</guid>
		<description><![CDATA[&#8220;Techකතා Game Development&#8221; පාඩම මාලාවේ]]></description>
				<content:encoded><![CDATA[<p>&#8220;Techකතා Game Development&#8221; පාඩම මාලාවේ 04වන පාඩම ඔබවෙත ගෙන එන්නේ වීඩියෝ වැඩසහටහනක් ලෙසටය. (මෙය මාගේ පළමු වීඩියෝව නිසා අඩුපාඩු ඇත්නම් සමාවන්න.)</p>
<p><a href="http://www.youtube.com/watch?v=3Be5VUbjieY"><img src="http://img.youtube.com/vi/3Be5VUbjieY/2.jpg"></a></p>
<p><a href="http://www.youtube.com/watch?v=3Be5VUbjieY">Click here to view the video on YouTube</a>.</p>

<p>&nbsp;</p>
<p><a href="http://www.techkathamag.com/wp-content/uploads/2013/05/TK-Game-Development-EP04WindowsGame1.rar" target="_blank">(මෙවර වැඩසටහන මෙතනින් ගන්න)</a><a href="http://www.techkathamag.com/wp-content/uploads/2013/05/TK-Game-Development-EP04WindowsGame1.rar"><br />
</a></p>
<p>- Prasad Jayashanka -</p>
]]></content:encoded>
			<wfw:commentRss>http://www.techkathamag.com/game-development-lesson04/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Game Development : 03වන පාඩම</title>
		<link>http://www.techkathamag.com/game-development-lesson03/</link>
		<comments>http://www.techkathamag.com/game-development-lesson03/#comments</comments>
		<pubDate>Tue, 05 Mar 2013 13:59:33 +0000</pubDate>
		<dc:creator>චම්ලි</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Guides]]></category>
		<category><![CDATA[How To]]></category>

		<guid isPermaLink="false">http://www.techkathamag.com/?p=501</guid>
		<description><![CDATA[අද ලිපිය කොටස් 02 කට]]></description>
				<content:encoded><![CDATA[<p>අද ලිපිය කොටස් 02 කට වෙන් කොට ලියන්න අදහස් කලා. අන්තර්ගතය මෙසේයි.</p>
<ul>
<li>රුප චලනය</li>
<li>රුප වල ඇනිමේෂන් සැදීම</li>
</ul>
<p>&nbsp;</p>
<p><strong>01) රුප චලනය</strong></p>
<p>ගිය ලිපියේ සදහන් කල පරිදි අපි ඇන්ද රුපය එකතැනකට වෙලා ඉන්න එකක්. අද බලමු එක තිරය මත විවිධ පැති වලට යවන්නේ කොහොමද කියල.</p>
<p>spriteBatch.Begin();</p>
<p>spriteBatch.Draw(&lt;texure_variable_name&gt;,  Vector2.Zero,   Color.White);</p>
<p>spriteBatch.End();</p>
<p>&nbsp;</p>
<p>ගිය ලිපියේ අපි අදින්න පාවිච්චි කල කෝඩ් එක මේ වගේ එකක්. මේකේ Vector2.Zero  ලෙස තියෙන්නේ 0, 0 දෛය්ශික බවත්  new Vector2(x, y) ලෙස අදාළ අගයන් ලබා දීල තිරයේ අවශ්‍ය තැනක අදින්න පුළුවන් කියලත් කිව්වා. මේකේ x වලින් කියන්නේ හරස් අතට යන දුරයි. y කියන්නේ උඩ සිට පහලට තියන දුරයි.</p>
<p>මම පළමු ලිපියේ කිව්වා game loop වැඩකරන්නේ කොහොමද කියල. ඒ අනුව අපිට පුලුවන්න් නම් x හි අගය අනුක්‍රමිකව වැඩි කරන්න,  අදාල රුපය ඉදිරියට යනවා. x හි අගය අනුක්‍රමිකව අඩු කලොත් රුපය පසුපසට යනවා. y හි අගය අනුක්‍රමිකව වැඩි කලොත් රුපය පහලට යනවා. y හි අගය අනුක්‍රමිකව අඩු කලොත් රුපය ඉහලට යනවා. ඒවගේම මේ දෙකම එක්වර කලොත් රුපය පැත්තට යවන්න පුළුවනි. දැන් ඔබට අදහසක් ඇති මේක වෙන්නේ කොහොමද කියල <img src='http://www.techkathamag.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>මේක කරන විදිහ මෙහෙමයි.</p>
<p>එදා වගේම Texture2D  වෙරියබල් එකක් හදාගෙන එකට කැමති ඉමේජ් එකක් ලෝඩ් කරගන්න. ( උදාහරණය සදහා මම යොදාගන්නේ techKatha කියන වෙරියබල් එක )</p>
<p>ඊට පස්සේ Texture2D වෙරියබල් එක ලගින් ම මේ විදිහට තව Vector2 වේරියබ්ල් එකක් හදාගන්න.</p>
<p>Vector2  &lt;variable_name&gt;   = Vector2.Zero();      (මෙතැනදී මම කරන්නේ පටන් ගන්න තැන 0, 0 ලක්ෂ්‍ය දෙන එකයි. කැමති නම් new Vector(x, y)  දීල ඔබට කැමති තැනකින් පටන් ගන්නත් පුලුබනි. උද :- vector2 techKathPosition = new Vector2(50, 10);  )</p>
<p>float speed = 2.0f; (මෙය තමා අපේ වේගය සදහන් වෙන වෙරියබල් එක. මෙයට කැමති අගයක් යොදාගන්න පුළුවනි. )</p>
<p>උදාහරණය සදහා මම යොදාගන්නේ techKathaPosition කියන වේරියබ්ල් එක.</p>
<p>දැන් draw මෙතඩ් එක ලියමු,</p>
<p>spriteBatch.Draw(techKatha, techKathaPosition, Color.White);   ( මෙය ලිවිය යුත්තේ Begin සහ  End වාක්‍ය දෙක අතරයි.  පසුගිය ලිපිය බලන්න.)</p>
<p>&nbsp;</p>
<p>ගියවර අපි කලේ අවශ්‍ය x,y අගයන් මේ පේලියේම දෙන එකයි. මේ පාර අපි කරන්නේ එක තව vector2  වෙරියබල් එකකින් දෙන එකයි. එතකොට අපිට හිතේ හැටියෙන් මේකේ x සහ y අගයන් වෙනස් කරන්න පුළුවනි.</p>
<p>දැන් ප්‍රොජෙක්ට් එක build කරලා බාලුවොත් චලනය නොවෙන රුපයක් පෙනේවි. දැන් තම චලනය කරන කෝඩ් එක ලියන්නේ. යන්න Update function එකට.</p>
<p>එකේ මෙන්න මෙහෙම ලියන්න.</p>
<p>&nbsp;</p>
<p>techKathaPosition.X += 2;</p>
<p>techkathaPosition.Y += 2;</p>
<p>&nbsp;</p>
<p>දැන් ප්‍රොජෙක්ට් එක build කරලා බාලුවොත් චලනය  රුපයක් පෙනේවි. මේකෙදි වෙන්නේ මෙහෙමයි. අප්ඩේට් ලුප් එකේදී  අපි හදාගත්තු Vector2 එකේ ස්ථානය වෙනස් කරන එකයි. ඔය දීල speed අගයන් වෙනස් කර වේගයන් අඩුවැඩි කරන්නත්  ඍන ලකුණ දීමෙන් විරුද්ද පත්තට යවන්නත් පුළුවන්. ටෙස්ට් කිරීම ඔබට බාරයි. අව්ලක් අවොත් techkatha වෙතට යොමු කරන්න <img src='http://www.techkathamag.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>&nbsp;</p>
<p>දැන්  හරි&#8230; ඔබ දන්නවා කොහොමද රුපය චලනය කරන්නේ කොහොමද කියල. දැන් ඔබට ප්‍රශ්නයක් ඇති ඇයි මේ රුපය Viewport එකෙන් එලියට යන්නේ ඇයි කියල. එක නවත්වන්නේ මෙහෙමයි.</p>
<p>&nbsp;</p>
<p>techKathaPosition.X += speed;</p>
<p>if(techKathaPosition.X &gt; Window.ClientBounds.Width &#8211; techKatha.Width || techKathaPosition.X &lt; 0 )</p>
<p>speed *= -1;</p>
<p>techKathaPosition.Y += speed;</p>
<p>if(techKathaPosition.Y &gt; Window.ClientBounds.Height -techKatha.Height || techKathaPosition.Y &lt; 0)</p>
<p>speed *= -1;</p>
<p>Window.ClientBounds.Width  = අපේ ස්ක්‍රීන් එකේ දිග</p>
<p>Window.ClientBounds.Height  = ස්ක්‍රීන් එකේ උස</p>
<p>techKatha.Width  =  යොදා ගන්න රුපයේ දිග</p>
<p>techKath.Height = යොදාගන්න රුපයේ උස</p>
<p>මේකෙදි කෙරෙන්නේ x හෝ y වල අගය ස්ක්‍රීන් එකත් සමග අදාල රුපය සම්පත වන අගය එළබි වෙලාවේ speed  එක ඍන බවට පත් කිරීමයි. එවිට වෙන්නේ අදාල වේගයෙන් අනිත් පැත්තට යන එකයි..</p>
<p>&nbsp;</p>
<p><strong>02)  රුප වල ඇනිමේෂන් සැදීම.</strong></p>
<p>Super mario වගේ ගේම්ස් ගහනකොට දැකල ඇති ඒකෙ චරිතය එහාට මෙහාට යනකොට කකුල් සෙල වෙනවා ඇත පය සෙලවනවා. අන්න ඒ දේ කරන්න තමයි අපි මේ කොටසින් බලන්නේ.</p>
<p>මේවගේ දෙයක් කරන්න නම් අර කාටුන් වල කෙරෙන දේ තමයි කරන්න ඕනි. එකියන්නේ ඇනිමේෂන් එක වෙන හැටි මොහොතින් මොහොත ඇක්ෂන් වෙනස් කරමින් රුප කිහිපයක් ඇදගන්න ඕනි. එතකොට ඒවා එකදිගට මාරුවෙන් මාරුවට viewport  එකේ වෙගයෙන් ඩිස්ප්ලේ කරනකොට එක ඇනිමේට් වෙනවා වගේ පේනවා.</p>
<p>කරන හැටි මෙහෙමයි&#8230;</p>
<p>ඉස්සෙල්ලම ඔයාට ඕනි ඒවගේ රුප සෙට් එකක් හදාගන්න. ඊට පස්සේ පිළිවෙලට ඒ රුප ඔක්කොම එක ලොකු ෂිට් එකකට ඇතුලත් කරගන්න.</p>
<p>උද : &#8211; අපි හිතමු අපිට ඕනි අනුමේෂන් එකේ රුප ඇදල තියෙන්නේ 100&#215;250 pixel කොටු 4ක කියල. එහෙනම් ෆොටෝෂොප් හෝ ගිම්ප් වගේ සොෆ්ට්වෙයා එකකින් 200&#215;500 pixel ලොකු ෂිට් එකක් හදාගෙන එකට අර පින්තුර ටික ගන්න. පින්තුර වල බැක්ග්‍රවුන්ඩ් පේන්න ඕනි නැත්නම් transparent sheets එකකට අරගෙන PNG විදිහට සේව් කරගන්න. JPG වල transparency වැඩ කරන්නේ නැ.</p>
<p>උදාහරණය සදහා මම යොදාගන්නේ සාමාන්‍ය පාට 4කින් යුතු ශීට් එකක්. ඔබට කැමති රුප සහිත ශීට් එකක් යොදාගන්න පුළුවනි.</p>
<p>ඊළගට එම රුපය ඔබ කැමති වෙරියබල් එකකට ලෝඩ් කරගනන. ඉන්පසු මෙම ලයින්  class ලෙවෙල් එකේ ඇතුලත් කරන්න.</p>
<p>Point animateframeSize = new Point(100, 250);</p>
<p>Point animatecurrentFrame = new Point(0, 0);</p>
<p>Point animatesheetSize = new Point(2, 2);</p>
<p>මෙම point structs, 2D තලය මත රුපයක ගුණාංග විස්තර කරන්න යොදාගන්න පුළුවනි. මේකේ පළමු පේලියෙන් කියන්නේ  frameSize එක. එකියන්නේ අපේ ෂිට් එකේ රුප ගොඩක් තියෙන නිසා එම එක රුපයක පික්සෙල් ගණන. දෙවැනි එකෙන් කියන්නේ currentFrame එක. මේකෙදි දීල තියෙන්නේ 0, 0 මොකද අපිට අදින්න පටන් ගන්න ඕනි තැන අපේ ෂිට් එකේ වම් කෙලවරේ උඩම කොනේ ඉදන් නිසා, තුන්වන පේලියෙන් කියන්නේ ෂිට් එක පින්තුර ගණන. මම පාවිච්චි කරන්නේ 2 , 2 එකක්. එකියන්නේ  ෂිට් එක හරි  4 ට බෙදල ඇති බවයි. අපි හිතමු ඔයාගේ එක තියෙන්නේ රුප 6ක් එක පේළියකට 3ක් වන ලෙසට කියල. එහෙම උනාම සදහන් කරන්න ඕනි 2, 3 කියන විදිහට.</p>
<p>&nbsp;</p>
<p>දැන් පොඩ්ඩකට අපගේ පාඩම් මාලාවේ 02වන පාඩම ඇති ලිපිය බලන්න. ඒකෙ overloaded method එක තමා අපි මෙතැනදී පාවිච්චි කරන්න යන්නේ.</p>
<p>එකේ තියෙනවා source rectangle overload එක. එම ලිපියේ මම එක ගැන විස්තර නොකර ආවේ ඒක ඕනි වෙන්නේ මෙතනට නිසා. දැන් අපි දන්නවා අපේ ෂිට් එකේ පින්තුර ගොඩක් තියෙනවා කියල.  එකෙන් එක පින්තුරයක් විතරක් පෙන්නන්න එක වරකට අපිට මෙම rectangle පාවිච්චි කරන්න පුළුවනි.</p>
<p>spriteBatch.Draw(animate, new Vector2(300, 300),</p>
<p>new Rectangle(animatecurrentFrame.X * animateframeSize.X, animatecurrentFrame.Y * animateframeSize.Y, animateframeSize.X, animateframeSize.Y),</p>
<p>Color.White, 0, Vector2.Zero, 1, SpriteEffects.None, 1);</p>
<p>ඒ මෙන්න මේ විදිහට. අපි අර ඉස්සෙල්ල හදාගත්තු Point struct ටික rectangle function overload විදිහට පාස් කරනවා. එතකොට  ෂිට් එකේ frame එකෙන් frame එකට මාරු වෙනවා.</p>
<p>ඉන්පසු මෙම කෝඩ් එක update එකේ යොදා ගන්න.</p>
<p>&nbsp;</p>
<p>++animatecurrentFrame.X;</p>
<p>if (animatecurrentFrame.X &gt;= animatesheetSize.X)</p>
<p>{</p>
<p>animatecurrentFrame.X = 0;</p>
<p>++animatecurrentFrame.Y;</p>
<p>if (animatecurrentFrame.Y &gt;= animatesheetSize.Y)</p>
<p>animatecurrentFrame.Y = 0;</p>
<p>}</p>
<p>&nbsp;</p>
<p>මේ කෝඩ් එකෙන් වෙන්නේ Point struct එකේ  frame එකෙන්  frame එක අප්ඩේට් කරන එකයි. මේකේ තියෙන ලොජික් එක ටිකක් කල්පනා කරලා තේරුම් ගණන ටිකක් වෙලා යනවා.  වඩා හොද දේ තමයි කිහිප විටක් මේක කරන එක.</p>
<p>දැන් මේක build කරොත් පෙනේවි ඉතා වේගයෙන් ඇනිමේට් වන අයුරු. සාමාන්‍ය සම්මත වේගය තත්පරෙකට frame 60 ක්. නමුත් එම වේගය වැඩි නම් අඩු කරන්නත් පුලුවන්. එය කරන්නේ මෙහෙමයි.</p>
<p>මෙවිදිහට class level වෙරියබල් 2ක් එකතු කරගන්න.</p>
<p>int interFrameTime = 0;</p>
<p>int timePerFrame = 150;</p>
<p>interFrameTime එකෙන් කියන්නේ  දැන් තියන frame එක එන්න කලින් frame එකේ ඉදල කොච්චර වෙලා ගියද කියල. ආරම්බයේදී එක බින්දුවයි. ඊලග වෙරියබල් එකෙන් කියන්නේ එක frame එකකට තියෙන කාලයයි. එම අගය වැඩි කරලා වේගය අඩු කරන්නත්  ඒම අගය අඩු කිරීමෙන් වේගය වැඩි කරන්නත් පුළුවන්. ඇයි එහෙම වෙන්නේ?</p>
<p>ඔය අගයෙන් අපි ලබාදෙන්නේ millisecond ප්‍රමාණය.</p>
<p>FPS ( Frames Per Second ) =   1 / n</p>
<p>ඔය n අගය මත තම වේගය රදා පවතින්නේ.    ( n = time in milliseconds )</p>
<p>ඊට පස්සේ update එකේ ලියපු frame update කෝඩ් එක  පහල තියන කෝඩ් එක ඇතුලේ enclose කරන්න.</p>
<p>&nbsp;</p>
<p>interFrameTime += gameTime.ElapsedGameTime.Milliseconds;</p>
<p>if (interFrameTime &gt; timePerFrame)</p>
<p>{</p>
<p>interFrameTime -= timePerFrame;</p>
<p>// frame අප්ඩේට් කෝඩ් එක මෙතනට ඇතුලත් කරන්න</p>
<p>}</p>
<p>එහෙම කලාම මේ විදිහට තියෙන්න ඕනි..</p>
<p>&nbsp;</p>
<p>interFrameTime += gameTime.ElapsedGameTime.Milliseconds;</p>
<p>if (interFrameTime &gt; timePerFrame)</p>
<p>{</p>
<p>interFrameTime -= timePerFrame;</p>
<p>++animatecurrentFrame.X;</p>
<p>if (animatecurrentFrame.X &gt;= animatesheetSize.X)</p>
<p>{</p>
<p>animatecurrentFrame.X = 0;</p>
<p>++animatecurrentFrame.Y;</p>
<p>if (animatecurrentFrame.Y &gt;= animatesheetSize.Y)</p>
<p>animatecurrentFrame.Y = 0;</p>
<p>}</p>
<p>}</p>
<p>දැන් බලමු මෙම කෝඩ් එකෙන් කියවෙන්නේ මොකක්ද කියල. පළමු පේලියෙන් කියන්නේ අර frame එකේ ඉදලා ඊළග frame එකට යන්න  ගිහිපු කාලය. මේක ගන්නේ library වල තියෙන gameTime  මෙතඩ් එක පාවිච්ච් කරලා.  gameTime.ElapsedGameTime.Milliseconds එකෙන් අපිට ලැබෙන්නේ ගෙවුන මිලි තත්පර ගණන. අපිට ඕනේ නම් මිනිත්තු වලින් උනත් ගන්න පුළුවන්. එතකොට millisecond වෙනුවට minute යොදාගන්න ඕනි. නමුත් මෙතැනදී එහෙම කරන්න එපා.  ඊළගට කරන්නේ එහෙම ගන්න කාලය සාමාන්‍ය frame 2ක් අතර කාලයට වැඩිද කියල බලනව. එහෙමනම් එම කාලය අඩු කර ඊලග frame එක අර ෂිට් එකෙන් ලෝඩ් කරනවා.</p>
<p>අද ලිපියෙන් මේපමණයි. ඊලග ලිපියෙන් input දෙන හැටි බලමු. එතකොට පුළුවන් කීබෝඩ් සහ මවුස් එක පාවිච්චි කරලා අපේ රුප හසුරුවන්න. ඔබ සැමට ජය.. <img src='http://www.techkathamag.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://www.techkathamag.com/wp-content/uploads/2013/03/XNA-TK3.rar" target="_blank">(මෙවර වැඩසටහන මෙතනින් ගන්න)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.techkathamag.com/game-development-lesson03/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Game Development : 02වන පාඩම</title>
		<link>http://www.techkathamag.com/game-development-lesson02/</link>
		<comments>http://www.techkathamag.com/game-development-lesson02/#comments</comments>
		<pubDate>Wed, 20 Feb 2013 08:02:29 +0000</pubDate>
		<dc:creator>චම්ලි</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Guides]]></category>
		<category><![CDATA[How To]]></category>

		<guid isPermaLink="false">http://www.techkathamag.com/?p=485</guid>
		<description><![CDATA[අද ලිපියෙන්  සාකච්ඡා කෙරෙන්නේ කොහොමද]]></description>
				<content:encoded><![CDATA[<p>අද ලිපියෙන්  සාකච්ඡා කෙරෙන්නේ කොහොමද මේකට රුප එහෙම නැත්නම් Sprites ඇතුලත් කරන්නේ කියල. ප්‍රධාන වශයෙන්ම sprites වර්ග දෙකක් තියෙනවා. එනම්  2D සහ  3D යන්නයි. අපි මේ පාඩම් මාලාව තුල කරන්නේ ද්විමාන රූප නිසා අපි 2D sprites යොදා ගන්න හැටි බලමු.  අද සිට පලවන සියලු පාඩම් සමග &#8220;මුලික අංග&#8221; නිම කරන ලද project එකක් අමුණන්න තීරණය කලා. මොකද එතකොට තේරෙන්නේ නැති තැනක් අවොත් බලන්න පුළුවන් වෙන නිසා.</p>
<p>XNA වල අපිට රුප සදහා ගොඩක් file extensions යොදා ගන්න පුළුවනි.  jpg, bmp සහ png වගේ ඒවා. මේ අපි ප්‍රොජෙක්ට් එක තුලට ගන්න හැම ඉමේජ් එකක්ම XNA වලින් එයාලගෙම ෆෝමැට් එකකට පරිවර්තනය කරලා තම පාවිච්චි කරන්නේ. මෙය සරලව content pipeline කියාත් හදුන්වනවා. ඉමේජ් පමණක් නොවේ අපි අපේ ප්‍රොජෙක්ට් එකට ගන්න ශබ්ද මාධ්‍ය ගොනු පවා ඔවුන්ගේම ෆෝමැට් එකකට යොමු කරලා පෙළ ගස්වනවා.</p>
<p>මම මේ සදහා පාවිච්චි කරන්නේ  100 x 100 පික්සෙල් ප්‍රමාණයේ jpg ඉමේජ එකක්. ඔබට කැමති ප්‍රමාණයේ එකක් යොදාගන්න පුළුවනි.</p>
<p>පලමුව අලුත් project එකක් හදාගන්න. දැන් solution explorer එකේ  &lt;project_name&gt;Content(Content) කියන එක රයිට් ක්ලික් කරන්න. අලුත් ෆෝල්ඩර් එකක් හදල images කියල රිනෙම් කරන්න. ඉන් පසු එම ෆෝල්ඩරය රයිට් ක්ලික් කරලා Add -&gt;  Existing items ගිහින් ඔයාගේ ඉමේජ් එක දෙන්න. එවිට project එක තුලට එම අදාල ඉමේජ් ගොනුවෙන් කොපියක් වැටේවි.  තව මතක තියාගන්න අපි මේ project එකට දමන හැම ෆයිල් එකක්ම &lt;project_name&gt;Content (Content) එක යටතේ දැමිය යුතු බව..</p>
<p>දැන් අපි මෙම ඉමෙජ් ෆයිල් එක තිරයට ගන්න නම් එය 2D වෙරියබල් එකකට ගන්න ඕනි. මෙය ද්විමාන එකක් නිසා අපි Texture2D පාවිච්චි කරනවා. Game1.cs එකේ ක්ලාස් ලෙවෙල් එකෙන් හදාගන්න.</p>
<blockquote><p>Texture2D   &lt;texure_variable_name&gt;;</p></blockquote>
<p>දැන් අපි හදාගත්තු වෙරියබල් එකට ඉමේජ් එක ලෝඩ් කල යුතුයි. එනිසා එය LoadContent() එක තුල මෙසේ සිදු කරන්න..</p>
<blockquote><p>&lt;texure_variable_name&gt; = Content.Load&lt;Texture2D&gt;(@&#8221;images/&lt;your_image_name&gt;&#8221;);</p></blockquote>
<p>හරි දැන් ඉමේජ් එක වෙරියබ්ල් එකට ලෝඩ් වෙලා තියෙන්නේ. දැන් තියෙන්නේ මේක ඩිස්ප්ලේ එකේ අදින එකයි. එකට Draw මෙතඩ් එකට යන්න..</p>
<blockquote><p>spriteBatch.Begin();</p>
<p>spriteBatch.Draw(&lt;texure_variable_name&gt;,  Vector2.Zero,   Color.White);</p>
<p>spriteBatch.End();</p></blockquote>
<p>ඔබ හරියාකාරව අනුගමනය කලේ නම් නිල පාට තිරයේ ඔබේ රුපය වම් උඩ කොනක දිස්වෙනු ඇති.  මෙම ලයින් 3 හි පළමු ලයින් එකෙන් කියන්නේ ග්‍රැෆික් කාඩ් එකට sprite data යැවීම අරඹන බවයි. මැද ලයින් එකෙන් කියන්නේ එම යවන data ගැනයි. 3වන ලයින් එකෙන් කියන්නේ data යැවීම නවත්වන බවයි.</p>
<p>&nbsp;</p>
<p><strong>Vector2.Zero</strong>  &#8211;  දෛය්ශික වර්ග දෙකයි. 2D සහ 3D. අපි මෙහිදී කියන්නේ (0,0) ලක්ශ්‍යට අදාල vector එක පාවිච්චි කරන්න කියල.  ඔබට තිරයේ වෙනත් තැනක අදින්න උවමනා නම්  එවෙනුවට new Vector(y, x)  ලෙස දුන්නනම් හරි.</p>
<p><strong>Color</strong> &#8211; ඉමෙජ් එකට Tint color එක.. මෙය වැදගත් වෙන්නේ එහා මෙහා පෙන ඉමේජ් වලටයි.</p>
<p><strong>Overloaded method Draw - </strong>මෙය සාමාන්‍ය spriteBatch.Draw මෙතඩ් එකට තවත් ක්‍රියාකාරකම් වැඩිකොට එක කරන ලද මෙතඩ් එකක්. මෙයින් ඉම්ජ් වල එහා මෙහා පෙන ගති වැඩි කරන්න. ඉමේජ් flip කරන්න, crop කරන්න සහ layer depth හදාගන්න පුළුවනි.</p>
<blockquote><p>spriteBatch.Draw(&lt;texure_variable_name,  &lt;Vector_Position&gt;, &lt;Rectangle_Crop&gt;,  &lt;Tint_color&gt;,  &lt;rotataion&gt;,  &lt;origin_of_rotation&gt;,  &lt;image_scale&gt;, &lt;spriteEffects&gt;,  &lt;Layer_Depth&gt; );</p></blockquote>
<p><strong>Rectangle Crop</strong> &#8211; මේක අවශ්‍ය වෙන්නේ Sprite Animations වලදී. එනිසා දැනට මෙය null ලෙස සදහන් කරන්න.</p>
<p><strong>rotation</strong> &#8211; ඉමේජ් එක කරකැවීමට යොදාගනී. float වලින් සදහන් කල යුතයි.</p>
<p><strong>Scale</strong> &#8211; ඉමේජ් එකේ scale එක වෙනස් කරයි. float වලින් අගය සදහන් කල යුතුයි.</p>
<p><strong>spriteEffects</strong> -  spriteEffects.FlipHorizontally  සහ spriteEffects.FlipVertically යන argument යොදා ඉමේජ් flip කිරීම කල හැකියි.</p>
<p><strong>Layer Depth</strong> &#8211; මෙයින් කෙරෙන්නේ ඉමේජ් කීපයක් එක උඩ එක සමපාත කිරීමේදී උඩිනම පෙනෙන්න ඕනි මොකක්ද කියන එක සදහන් කරන එකයි. අපි හිතමු මෙහෙම.. දැන් අපි ගව තියෙනවා ගහක ඉමේජ් එකක් සහ මුවෙක්ගේ ඉමේජ් එකක්. අපිට ඕනි මුවා ගහ යට ඉන්නවා පෙන්න්න්න නේ. එතකොට අපිට කරන්න පුළුවන් උඩට එන්න ඕනි මොකක්ද යටට එන්න ඕනි මොකක්ද කියල float අගයක් දීල එක විස්තර කරන්න. අගය හැමවිටම 0 සහ 1 අතර තිබිය යුතුයි. 0 කියන්නේ most front position එක . 1 කියන්නේ  most back position එක. මෙම layer depth බාවිතා කිරීම සදහා spriteBatch.Begin() එකත් overload කිරීම අවශ්‍ය වෙනවා.</p>
<blockquote><p>spriteBatch.Begin(SpriteSortMode.&lt;your_selection&gt;,  BlendState.&lt;your_selection&gt;);</p></blockquote>
<p>SpriteSortModes &#8211; මෙයින් සදහන් වෙන්නේ රෙන්ඩර් කරන ලද sprites  ඇදීම සදහා පිළියෙළ කරන අයුරුයි.</p>
<ol>
<li>Deffered &#8211; end මෙතඩ් එක කෝල් කරන කන් sprite ටික stack කර තබාගෙන කෝල් කිරීමෙන් පසු එම sprite සාදන අනුපිලිවෙලින් යැවීම</li>
<li>Immediate &#8211; Begin මෙතඩ් එක කෝල් කල වහ sprite යැවීම අරබිම..</li>
<li>Texure &#8211;  Deffered ක්‍රමයට සමානයි නමුත් sequence එක ඇදීමට පෙරම තීරණය කරයි.</li>
<li>BackToFront &#8211; layer Depth parameter පාවිච්චි කර sprites පිටුපස සිට ඉදිරිපසට පිළිවෙල කරයි.</li>
<li>FrontToBack &#8211; Layer Depth parameter පාවිච්චි කර  sprites ඉදිරිපස සිට පසුපසට පිළිවෙල කරයි..</li>
</ol>
<p>&nbsp;</p>
<p><strong>BlendState</strong> -   sprite වල වර්ණයන් බැක්ග්‍රවුන්ඩ් වර්ණ සමග සංයෝජනය වන අයුරු විස්තර කරයි. දැනට එහි ක්‍රම 4 විස්තර කිරීම ප්‍රයෝගික නොවන නිසා දැනට  AlphaBlend යන්න යොදා ගන්න. පසුව උදාහරණ යෙදෙන තැන්වලදී එය ගැන කීම වඩාත් සුදුසුයි.. දැනට AlphaBlend ලෙස එතනට යොදන්න.</p>
<p>example :</p>
<blockquote><p>protected override void Draw(GameTime gameTime)</p>
<p>{</p>
<p>GraphicsDevice.Clear(Color.CornflowerBlue);</p>
<p>// TODO: Add your drawing code here</p>
<p>spriteBatch.Begin(SpriteSortMode.FrontToBack, BlendState.AlphaBlend);</p>
<p>spriteBatch.Draw(texture, Vector2.Zero, null, Color.White, 0, Vector2.Zero , 1,  SpriteEffects.None,  0);</p>
<p>spriteBatch.Draw(texture, new Vector2(150, 150), null, Color.Black, 0, Vector2.Zero, 1.5f, SpriteEffects.FlipHorizontally,1);</p>
<p>spriteBatch.End();</p>
<p>base.Draw(gameTime);</p>
<p>}</p></blockquote>
<p>&nbsp;</p>
<p>මේ සම්බන්දව ගැටලුවක් ඇත්නම් ඇත්නම් කොමෙන්ටුවක් දැමීම හෝ  TechKatha වෙත ලියන්න. ඒවගේම ලියන ආකාරය වෙනස් විය යුතු යයි සිතෙනවා නම් එයත් අපට දන්වන්න. ඊලග ලිපියෙන් animation කරන හැටි කියන්න බලාපොරොත්තු වෙනවා.  ඔබ සැමට සුභ සතියක් <img src='http://www.techkathamag.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://www.techkathamag.com/wp-content/uploads/2013/02/XNA-TK2.rar" target="_blank">මෙවර වැඩසටහන මෙතනින් ගන්න.</a></p>
<p>&nbsp;</p>
<p>- Prasad Jayashanka -</p>
]]></content:encoded>
			<wfw:commentRss>http://www.techkathamag.com/game-development-lesson02/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Game Development : 01වන පාඩම</title>
		<link>http://www.techkathamag.com/game-development-01%e0%b7%80%e0%b6%b1-%e0%b6%b4%e0%b7%8f%e0%b6%a9%e0%b6%b8/</link>
		<comments>http://www.techkathamag.com/game-development-01%e0%b7%80%e0%b6%b1-%e0%b6%b4%e0%b7%8f%e0%b6%a9%e0%b6%b8/#comments</comments>
		<pubDate>Tue, 22 Jan 2013 16:44:08 +0000</pubDate>
		<dc:creator>චම්ලි</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Guides]]></category>
		<category><![CDATA[How To]]></category>

		<guid isPermaLink="false">http://www.techkathamag.com/?p=461</guid>
		<description><![CDATA[අදින් ඇරඹෙනුයේ  Microsoft සමාගම මගින්]]></description>
				<content:encoded><![CDATA[<p>අදින් ඇරඹෙනුයේ  Microsoft සමාගම මගින් ලබාදෙන  XNA Game Studio 4.0 භාවිතා කර ක්‍රීඩා නිර්මාණය පිළිබඳ ලිපි පෙළයි.  මතක තබාගන්න ලෙහෙසියෙන් පටන් ගන්න දෙහි ප්‍රතිපලයට වඩා අමාරුවෙන් පටන් ගෙන කරන දෙහි ප්‍රතිපල වැඩියි. මෙය යම් තරමකට අමාරු උනත් හොද පටන් ගැනීමක්. ඔබට අවශ්‍ය වීඩියෝ ක්‍රීඩා කේත කරුවකු වන්න නම් අමාරු දේ කරන්න. අවශ්‍ය නිකන් ක්‍රීඩා විනෝදයට හදන්න නම් මේ ලිපි පෙළ කියවන්න කාලය මිඩංගු නොකර කෙලින්ම ගේම එන්ජින් එකක් වෙත යොමු වන්න. අප මේ ලිපිය ලියන්නේ එවන් අමාරු මාර්ගය තෝරාගෙන ඉදිරියට යාමට සිතන අයටයි. ටෙක්කතා කරන හැමෝගෙම පැතුම එවන් අයට  තාක්ෂණයට ඇති භාෂා භාධකය ඉවත් කරන්නයි.</p>
<p>එහෙනම් පටන් ගනිමු <img src='http://www.techkathamag.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>පළමුව කල යුත්තේ අවශ්‍ය පරිසරය නිර්මාණය කර ගනිමයි. මේ සදහා පහත මෘදුකාංග බාගැනීම අත්යවශ්‍යයි..</p>
<ol>
<li>Microsoft Visual Studio 2010 <a href="http://go.microsoft.com/?linkid=9709969" target="_blank">(බාගත කිරීමට මෙම ලින්කුව භාවිතා කරන්න)</a></li>
<li>Microsoft XNA Game Studio 4.0 <a href="http://www.microsoft.com/en-us/download/details.aspx?id=23714" target="_blank">(බාගත කිරීමට මෙම ලින්කුව භාවිතා කරන්න)</a></li>
</ol>
<p>පළමුව Visual Studio ඉන්ස්ටෝල් කරන්න. ඕනෑම 2010 සංස්කරණයක් භාවිතා කරන්න පුළුවනි. ලින්ක් එකේ ලබා දී ඇත්තේ Microsoft සමාගම විසින් නොමිලේ ලබා දෙන Express සංස්කරණයයි. ඔබට කැමති visual studio 2010 සංස්කරණයක් ස්ථාපනය කිරීමෙන් පසුව XNA game studio එක ස්ථාපනය කරන්න.</p>
<p>දැන් ඔබේ පරිගණකය හි සැකසුම් සදා නිමයි <img src='http://www.techkathamag.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>ඊළගට visual studio විවෘත කරන්න. එහි File =&gt; New =&gt; New Project තෝරා ගන්න. ඉන් පසු එන වින්ඩෝ එකේ වම් පස තීරුවේ Visual C# යන්න දිග හැර එහි XNA Game Studio 4 යන්න තෝරන්න. ඉන් පසු දකුණු පස ඇති ලිස්ට් එකෙන් Windows Game (4.0 ) තෝරාගන්න. ඔබ කැමති නමක් ලබාදී OK ඔබන්න.. දැන් ඔබට නව project එකක් නිර්මාණය වනවා ඇති. ඔබට මෙම කේතම සුළු වෙනසක් කොට Windows phone සහ Xbox වලට යොදාගන්න පුළුවන්. එම වෙනස්කම් ඉදිරියේදී සදහන් වෙයි.</p>
<p><span id="more-461"></span></p>
<p style="text-align: center;"><a href="http://www.techkathamag.com/game-development-01%e0%b7%80%e0%b6%b1-%e0%b6%b4%e0%b7%8f%e0%b6%a9%e0%b6%b8/xna1-2/" rel="attachment wp-att-466"><img class="wp-image-466 aligncenter" alt="xna1" src="http://www.techkathamag.com/wp-content/uploads/2013/01/xna11.jpg" width="633" height="435" /></a></p>
<p>මෙය C# භාවිතා වෙන කේත ක්‍රමයක්. නමුත් C# දැනගැනීමට අවශ්‍ය නැ.. ඔබ භාෂාවක මුලික දෑ හා OOP  දන්නවා නම් මෙය ඉතා පහසුයි.  අලුතින් ප්‍රොජෙක්ට් එක නිර්මාණය වූ වහාම ඔබට  Game1.cs  ක්ලාස් ෆයිල් එක ලැබෙනවා. මෙහි constructor එක සහ methods 5ක් සහ ස්වයංක්‍රීයව නිර්මාණය වූ class level variables කීපයක් තිබෙන බව ඔබට පෙනේවි. දැන් එකින් එක වෙත යමු. මේවා සමහර විට එකවර නොත්රිමට පුළුවන්. නමුත් එය ප්‍රයෝගිකව කරන විට හොදින් වැටහේවි <img src='http://www.techkathamag.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<ul>
<li><b>Class level variables</b></li>
</ul>
<p>GraphicsDeviceManager graphics;  මෙය මගින් කරනුයේ GPU එක සමග අපේ කේත සම්බන්ධ කිරීමයි. එමනිසා අපිට මෙහි කේතකරණයෙන් විවිධ රුප මාධ්‍ය තිරය මත අදින්න පුළුවනි. GraphicsDeviceManager object හි ඇති  GraphicsDevice property එක මගින් මෙම කාර්යය ඉටු කරනු ලබනවා.</p>
<p>SpriteBatch spriteBatch;   මෙය SpriteBatch ක්ලාස් එකේ instance එකක්. මේකෙන් වෙන්නේ අපි තිරය මත රුප අදින්න භාවිතා කරන sprites(images) කළමනාකාරණය කිරිමයි.</p>
<ul>
<li> <b>Methods </b><b>Initialize &#8211; </b>Game1 class එකේ variables සහ objects ඇරඹීම සිදුකරයි.</li>
<li> <b>LoadContent &#8211; </b>ගේම් එක ආරම්භවී  එක දිගටම පවත්වා  ගෙන යාම සදහා භාවිතා විය යුතු සහ යම් යම් ක්‍රියාකාරකම් (reset) වලදී නැවත ලෝඩ් කරන්නන් සදහන් කරයි.  පටන් ගන්නා විට සිදුකෙරේ.</li>
<li> <b>UnLoadContent &#8211; </b>ගේම් එකේ process kill වන අවස්ථාවේදී SpriteBatch නිදහස් කිරීම සිදුවේ.</li>
<li> <b>Update &#8211; </b>ක්‍රීඩාව ඉදිරියට ගෙනයාමට අවශ්‍ය input, audio, collision detection වැනි ඒවා පාලනය කිරීම මෙම method  එකේදී සිදුවෙනවා.</li>
<li> <b>Draw - </b>පෙර declare කරන ලද graphics device objects ( උදා : spritebatch) භාවිතා කරමින් අප විසින් නිර්මාණය කරන ලද දර්ශන 2D සහ 3D Vector අදාල තිරය මත ඇදීම සිදු කරනවා.</li>
</ul>
<p>පහල දැක්වෙන්නේ මෙතෙක්  කියූ දෑ සරලව වෙන අයුරු..</p>
<p>&nbsp;</p>
<p style="text-align: center;"><a href="http://www.techkathamag.com/game-development-01%e0%b7%80%e0%b6%b1-%e0%b6%b4%e0%b7%8f%e0%b6%a9%e0%b6%b8/xna2/" rel="attachment wp-att-463"><img class=" wp-image-463 aligncenter" alt="xna2" src="http://www.techkathamag.com/wp-content/uploads/2013/01/xna2.jpg" width="553" height="311" /></a></p>
<p>ඊළඟ ලිපියෙන් images/sprites අරගෙන වැඩ කරන හැටි බලමු. ගැටලුවක් තියේනම් කොමෙන්ටුවක් ලෙස ඉදිරිපත් කරන්න..  ඔබ සැමට ජය <img src='http://www.techkathamag.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>&nbsp;</p>
<p>- Prasad Jayashanka -</p>
]]></content:encoded>
			<wfw:commentRss>http://www.techkathamag.com/game-development-01%e0%b7%80%e0%b6%b1-%e0%b6%b4%e0%b7%8f%e0%b6%a9%e0%b6%b8/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Game Development : හැදින්වීම</title>
		<link>http://www.techkathamag.com/game-development/</link>
		<comments>http://www.techkathamag.com/game-development/#comments</comments>
		<pubDate>Mon, 07 Jan 2013 09:01:53 +0000</pubDate>
		<dc:creator>කාලිංග</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Guides]]></category>
		<category><![CDATA[How To]]></category>

		<guid isPermaLink="false">http://www.techkathamag.com/?p=450</guid>
		<description><![CDATA[පරිගණක සහ විවිධ ක්‍රීඩා උපාංග]]></description>
				<content:encoded><![CDATA[<div>පරිගණක සහ විවිධ ක්‍රීඩා උපාංග භාවිතා කරන හැමෝගෙම ලොකු ආසාවක් තමා දෘශ්‍ය ක්‍රීඩා සෙල්ලම් කිරීම. කවුද අකමැති දෘශ්යව ක්‍රීඩා සෙල්ලම් කරන්න.  නමුත් ඔබට කවදාවත් සිතුනේ නැද්ද දෘශ්‍ය ක්‍රීඩා නිර්මාණය කරන්න? ඔව් ඔබටත් පුළුවනි. මේ එසේ දෘශ්‍ය ක්‍රීඩා නිර්මාණය ගැන කියන ලිපි පෙළක පළමු වන්නැයි.  මෙය ලියන මමත් තවම ඉගෙන ගන්න කෙනෙක්. එනිසා යම් වරදක් දැක්කොත් පහදා දෙන මෙන් ඉල්ලා සිටිනවා පටන් ගැනීමට පෙරම.  දෘශ්‍ය ක්‍රීඩා නිර්මාණය කිරීමට ඔබත් කැමතිද? පිළිතුර ඔව් නම් ඔබ සතුව තිබිය යුතු යම් කිසි දෑ කීපයක් තියෙනවා..</div>
<div></div>
<div></div>
<div>1. බලවත් කැමැත්ත සහ කැපවීම &#8211; දෘශ්‍ය ක්‍රීඩා නිර්මාණය පුළුල් විෂයක් මෙන්ම ඉගෙනගන්න දේ බොහොමයි. ඒවගේම කැමැත්ත නැත්නම් බොහොම වෙහෙසකාරී දෙයක්. ගොඩක් අය දෘශ්‍ය ක්‍රීඩා නිර්මාණය පටන් ගත්තත් සති දෙකෙන් තුනෙන් නවතා දමනවා මොකද ක්රීදඩා සෙල්ලම් කිරීම තරම් ප්‍රියජනක දෙයක් නොවන නිසා. නමුත් ඔබ මෙයට ඉතාම කැමැත්තක් දක්වනවා නම් එය වෙහෙසකාරී වීම කෙසේ වෙතත් විනෝදකාරි දෙයක් වේවී.</div>
<div></div>
<div><span id="more-450"></span></div>
<div>2. යම් පරිගණක භාෂාවක් හදාරා තිබීම සහ එහි සැලකියයුතු තරමේ දැනුමක් ලබා තිබීම. අඩුම තරමේ මේ කොටස් වත් ඔබ ඉතා හොදින් පරිශීලනය කර තිබිය යුතුයි.</div>
<div>
<ul>
<li>Variable types</li>
<li>Functions</li>
<li>Control structures</li>
<li>References</li>
<li>Pointers</li>
<li>Arrays</li>
<li>Data structures ( Stacks, Queues, Trees )</li>
<li>Object Oriented Concepts ( class, objects, method, Constructor, polymorphism)</li>
<li>Operator Overloading</li>
</ul>
</div>
<div></div>
<div>( ඔබ මේවා ගැන දැනුමක් නැතිනම් ක්‍රීඩා නිර්මාණය අපහසුයි. එනිසා පළමුව යම් පරිගණක භාෂාවක් ඉගෙන ගන්න.. C++ ඉගෙනීම ඉතාම යෝග්යීයි.  <a href="http://www.cplusplus.com/files/tutorial.pdf" target="_blank">මේ සබැඳියාවහි ඇති පොත ඔබට ඉතාම වැදගත් වනු ඇති.</a> )</div>
<div></div>
<div>3. ගණිතමය දැනුම &#8211; ඔබ පාසලේ ලබපු දැනුමට අමතරව මේ මේ දේවල් උවමනා වෙනවා. ( සංකීර්ණ ත්‍රිමාණ ක්‍රීඩා සැදීමට පමණි )</div>
<div></div>
<div>
<ul>
<li>3D Vectors</li>
<li>Matrix Algebra</li>
<li>Transformations</li>
</ul>
</div>
<div></div>
<div> උසස් පෙලට ගණිත විෂය හැදෑරුවේ නැහැ කියල බයවෙන්න දෙයක් නෑ. කැමැත්ත සහ කැපවීම තිබේ නම් ඉගෙන ගන්න අමාරු නැහැ.</div>
<div></div>
<div>4. ගැටළු විසදීමේ හැකියාව  -  මේ සදහා නම් පුරුද්ද තිබිය යුතුයි. එනිසා පුළුවන් තරම් කේතකරණයේ යෙදෙන්න. ඔබ සතු පුරුද්ද අඩු නම් හොදම දේ තමා කේතකරණ වෙබ් අඩවියක සාමාජිකත්වය ගෙන එහි නියැලීම. දවසකට පැය බාගයක් කලත් හොදටම ඇති.  <a href="http://www.topcoder.com/ " target="_blank">www.topcoder.com </a> සහ <a href="http://ace.delos.com/usacogate" target="_blank">USACO </a>මේ සදහා ඉතාම හොදයි.</div>
<div></div>
<div>මම මේ ලිපිවලදී ලියන්න බලාපොරොතු වෙන්නේ සරල ක්‍රීඩා නිර්මාණය ගැනයි. එනිසා ගැඹුරු ගණිත දැනුමක් හෝ ගැඹුරු data structure දැනුමක් අත්‍යවශ්‍ය වෙන්නේ නෑ. නමුත් ඔබ ඉදිරියට කරගෙන යන්න අදහසක් තිබේ නම් එම දැනුම තිබීම අනිවාර්යයි.</div>
<div></div>
<div>දෘශ්‍ය ක්‍රීඩා නිර්මාණය තවදුරටත්&#8230;</div>
<div>දෘශ්‍ය ක්‍රීඩා නිර්මාණය කිරීමේදී එය අනිත් කේතකරණ විදි වලින් යම් තරමක් වෙනස් වෙනවා. අපි බලමු ඇයි ඒ කියල?</div>
<div></div>
<div>
<ol>
<li>ශබ්ද මාද්‍ය / Audio</li>
<li>රූපමය මාද්‍ය / Video</li>
<li>ගැටුම් හදුනා ගැනීම / Collision Detection</li>
<li>පාලනය කිරීම / Controlling</li>
<li>Polling CPU activity</li>
</ol>
</div>
<div></div>
<div>පාලනය කිරීම යනු ක්‍රීඩාව පාලනය කිරීමයි (මුසිකය, යතුරු පුවරුව සහ game pads ). Polling CPU activity යනු නිතරම අපේ ප්‍රොසෙසරය අපෙන් මෙහෙයවීමක් බලාපොරොත්තුවෙන් සිටීමයි. අපි එදිනෙදා කරන even driven apps  වලට වඩා වෙනස් වෙනවා.</div>
<div>මෙලෙස අපි දෘශ්‍ය ක්‍රීඩා සැදීමේදී ඉහත කියන ලද දේවල් ගැන සැලකිලිමත් වීම අනිවාර්යයි. සාමාන්‍යයෙන් අපි දන්නා පරිගණක භාෂාවකින් මේ හැම දෙයක් ම කරන්න බැහැ. එනිසා මෙය වෙනත් විදි දෙකකින් කරන්න පුළුවනි.</div>
<div>
<ol>
<li>ක්‍රීඩා සැදිමටම නිර්මාණය වූ භාෂාවක් භාවිතය (උදා &#8211; Blitz Basic, Dark Basic)</li>
<li>සාමාන්‍ය භාෂාවක් සමහ game library හෝ API එකක් භාවිතය</li>
</ol>
</div>
<div></div>
<div>Dark Basic වැනි භාෂාවක් තෝරාගැනීම ඉගෙනීමට මෙන්ම ක්‍රීඩා හැදිමටත් පහසුයි. නමුත් ගැටලුව තියෙන්නේ මේවා සාමාන්‍ය භාෂාවක් තරම් හොදින් මෙමරි භාවිතය සහ ප්‍රොසෙසර් භාවිතය කිරීමට ඇති නොහැකියාවයි.එනිසා සාමාන්‍ය භාෂාවක් සමහ game library හෝ API එකක් භාවිතය පටන් ගැනීමට සුදුසුයි.</div>
<div></div>
<div>Game libraries – Unity, XNA, SLICK2D , Marte Engine, Cube, Aleph One, Libgdx</div>
<div>API – DirectX, OpenGL, SDL, SFML</div>
<div></div>
<div>මේවාට අමතරව තව ගොඩක් ක්‍රම තිබුනත් මේවා තමයි දැනට ලෝකේ වඩාත්ම පාවිච්චි වෙන කොටස්. API පාවිච්චි කරන එක තම ලෝකයේ සම්මතය. නමුත් එකවරම DirectX හෝ OpenGL වන්නක් භාවිතා කිරීම යම් තාක් දුරට අපහසුයි. එනිසා game library එකකින් ආරම්භ කිරීම යෝග්‍ය බව මගේ අදහසයි. තවත් අප විසින් සැලකීමත් විය යුතු දෙයක් තමයි අපි භාවිතා කරන API හෝ game library එක cross platform ද නැද්ද යන වග. එය තමුන්ගේ පුද්ගලික කැමැත්ත මත තීරණය කිරීම සුදුසුයි.</div>
<div></div>
<div>අප මේ ඉහත සදහන් කරන ලද API හෝ game library භාවිතා කර ද්විමාන මෙන්ම ත්‍රිමාණ ක්‍රීඩා නිර්මාණය කල හැකියි. ත්‍රිමාණ ක්‍රීඩා නිර්මාණය ඉතාම සංකීර්ණ වන අතර පෙර සදහන් කල යම් තාක් ගැඹුරු ගණිත දැනුමද අවශ්‍ය වෙනවා. එනිසා ආරම්භයක් ලෙස Microsoft සමාගමෙන් ලබාදෙන XNA libarary පාවිච්චි කරල ද්විමාන ක්‍රීඩා නිර්මාණ කිරීමේ ලබන ලිපියේ සිට බලාපොරොත්තු වන්න. ඔබට ජය!</div>
<div></div>
<div></div>
<div>Prasad Jayashanka</div>
<div></div>
]]></content:encoded>
			<wfw:commentRss>http://www.techkathamag.com/game-development/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>මයික්‍රොසොෆ්ට් කාර්යාලයකින් iPad හොරකම් කරලා!</title>
		<link>http://www.techkathamag.com/%e0%b6%b8%e0%b6%ba%e0%b7%92%e0%b6%9a%e0%b7%8a%e0%b6%bb%e0%b7%9c%e0%b6%b8%e0%b7%83%e0%b7%9c%e0%b7%86%e0%b7%8a%e0%b6%a7%e0%b7%8a-%e0%b6%9a%e0%b7%8f%e0%b6%bb%e0%b7%8a%e0%b6%ba%e0%b7%8f%e0%b6%bd%e0%b6%ba/</link>
		<comments>http://www.techkathamag.com/%e0%b6%b8%e0%b6%ba%e0%b7%92%e0%b6%9a%e0%b7%8a%e0%b6%bb%e0%b7%9c%e0%b6%b8%e0%b7%83%e0%b7%9c%e0%b7%86%e0%b7%8a%e0%b6%a7%e0%b7%8a-%e0%b6%9a%e0%b7%8f%e0%b6%bb%e0%b7%8a%e0%b6%ba%e0%b7%8f%e0%b6%bd%e0%b6%ba/#comments</comments>
		<pubDate>Mon, 07 Jan 2013 08:47:37 +0000</pubDate>
		<dc:creator>කාලිංග</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.techkathamag.com/?p=448</guid>
		<description><![CDATA[අමෙරිකාවේ කැලිෆෝනියා ප්රාoන්තයේ, මවුන්ටන් විව්]]></description>
				<content:encoded><![CDATA[<p>අමෙරිකාවේ කැලිෆෝනියා ප්රාoන්තයේ, මවුන්ටන් විව් හි පිහිටි මයික්රො සොෆ්ට් කාර්යාල සංකීර්ණයට (Mountain View campus) පැමිණි සොරකු විසින් එහි තිබූ iPad ටැබ්ලට් පරිගණක පහක් රැගෙන ගොස් තිබේ. 3,000$ වඩා වටිනාකමින් යුත් මෙම සොරාගන්නා ලද iPad අතරට iPad 2 ටැබ්ලට් 2 ක්, iPad 3 ටැබ්ලට් 2ක් හා iPad 4 සංස්කරණයේ ටැබ්ලට් 1 ක් ඇතුළත්ය. මෙම සොරකම සිදුවූ නිශ්චිත දිනය තවමත් හෙළි වී නැති අතර එය පසුගිය දෙසැම්බර් 19 – 26 අතර යම් දිනකදී සිදුවූ බව දැනට සොයාගෙන ඇත.</p>
<p>කෙසේ වෙතත් මෙහි ඇති වැඩිදෙනෙකුගේ අවධානයට හා හාස්ය යට ලක්වූ සිද්ධිය නම් මයික්රොතසොෆ්ට් සමාගම විසින් නිෂ්පාදිත අලුත්ම හා වටිනා උපාංග විශාල ප්රවමාණයක් ඇති මෙම මවුන්ටන් විව් කාර්යාල සංකීර්ණයට ඇතුලු වූ මෙම සොරා ඒ කිසිවක් ගැන අවධානයක් යොමු නොකොට iPad කිහිපයක් පමණක් රැගෙන යාමය. පොලිසිය පවසන පරිදි හොරෙන් ඇතුලු වූවා යැයි සැකකළ හැකි සලකුනු කිසිවක් නොමැති අතර මේ වනතුරු කිසිදු සැකකරුවෙක් ද සොයාගෙන නොමැත. කාර්යාල සංකීර්ණයේ වීඩියෝ ආරක්ෂණ පද්ධතියේ ආධාරයෙන් ඉදිරි පරීක්ෂණ කටයුතු කිරීමට නියමිතය.</p>
<p><a href="https://twitter.com/iSachith" target="_blank">@Sachith </a>| Source TheTechStorm</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.techkathamag.com/%e0%b6%b8%e0%b6%ba%e0%b7%92%e0%b6%9a%e0%b7%8a%e0%b6%bb%e0%b7%9c%e0%b6%b8%e0%b7%83%e0%b7%9c%e0%b7%86%e0%b7%8a%e0%b6%a7%e0%b7%8a-%e0%b6%9a%e0%b7%8f%e0%b6%bb%e0%b7%8a%e0%b6%ba%e0%b7%8f%e0%b6%bd%e0%b6%ba/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Facebook Messenger හරහා වොයිස් මැසේජ්!</title>
		<link>http://www.techkathamag.com/facebook-messenger-%e0%b7%84%e0%b6%bb%e0%b7%84%e0%b7%8f-%e0%b7%80%e0%b7%9c%e0%b6%ba%e0%b7%92%e0%b7%83%e0%b7%8a-%e0%b6%b8%e0%b7%90%e0%b7%83%e0%b7%9a%e0%b6%a2%e0%b7%8a/</link>
		<comments>http://www.techkathamag.com/facebook-messenger-%e0%b7%84%e0%b6%bb%e0%b7%84%e0%b7%8f-%e0%b7%80%e0%b7%9c%e0%b6%ba%e0%b7%92%e0%b7%83%e0%b7%8a-%e0%b6%b8%e0%b7%90%e0%b7%83%e0%b7%9a%e0%b6%a2%e0%b7%8a/#comments</comments>
		<pubDate>Mon, 07 Jan 2013 08:46:33 +0000</pubDate>
		<dc:creator>කාලිංග</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.techkathamag.com/?p=446</guid>
		<description><![CDATA[ෆේස් බුක් සමාගම Facebook Messenger]]></description>
				<content:encoded><![CDATA[<p>ෆේස් බුක් සමාගම Facebook Messenger හි Android සහ iOS සංස්කරණ සදහා වොයිස් මැසේජ් යැවීමේ පහසුකම පසුගිය බ්රේහස්පතින්දා ලබා දුන්නා. මේ හරහා භාවිත කරන්නන් හට සාමාන්යස ටෙක්ස්ට් පණිවිඩයකට අමතරව තමන්ගේ හඩ පටිගත කර යැවිමේ හැකියාව ද ලැබෙන අතර මෙය ක්රිරයාත්මක කිරීම සදහා, සාමාන්යම ටෙක්ස්ට් පණිවිඩයක් යැවීම සදහා ටයිප් කරන කොටසේ වම් පස කෙළවරේ තිබෙන + සලකුන ඔබා, ඊලගට මතුවන මෙනුවෙන් ‘Record voice’ යන්න තේරිය යුතුය. දැන් ඔබට රෙකෝඩ් බට්න් එකක් ලැබෙන අතර එය ඔබාගෙන අදාල පනිවිඩය කියවා අවසානයේ අතහැරීම මගින් පටිගත කරන ලද පනිවුඩය යැවිය හැක.</p>
<p>මෙය ෆේස් බුක් විසින් Facebook Messenger වෙත හදුන්වාදෙන ප්රයධානම විශේෂාංගය වන VoIP calling සදහා ආරම්භයක් වන අතර, දැනට කැනඩාවේ iPhone භාවිත කරන්නන් සදහා පමණක් වලංගු වන මෙම VoIP calling සේවාව ඉදිරි සති කිහිපය තුළ සියලුදෙනාටම භාවිත කළ හැකිවනු ඇත.</p>
<p>&nbsp;</p>
<p><a href="https://twitter.com/iSachith" target="_blank">@Sachith</a> | Source PCMag</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.techkathamag.com/facebook-messenger-%e0%b7%84%e0%b6%bb%e0%b7%84%e0%b7%8f-%e0%b7%80%e0%b7%9c%e0%b6%ba%e0%b7%92%e0%b7%83%e0%b7%8a-%e0%b6%b8%e0%b7%90%e0%b7%83%e0%b7%9a%e0%b6%a2%e0%b7%8a/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Samsung WB150F Smart Camera Review</title>
		<link>http://www.techkathamag.com/samsung-wb150f-smart-camera-sinhala-review/</link>
		<comments>http://www.techkathamag.com/samsung-wb150f-smart-camera-sinhala-review/#comments</comments>
		<pubDate>Mon, 27 Aug 2012 01:00:13 +0000</pubDate>
		<dc:creator>කාලිංග</dc:creator>
				<category><![CDATA[Camera]]></category>
		<category><![CDATA[Guides]]></category>
		<category><![CDATA[Reviews]]></category>

		<guid isPermaLink="false">http://www.techkathamag.com/?p=436</guid>
		<description><![CDATA[Youtube වල බලන්න.  ප්‍රමාණය : 2.4]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.youtube.com/watch?v=8R1YpSopnHA"><img src="http://img.youtube.com/vi/8R1YpSopnHA/2.jpg"></a></p>
<p><a href="http://www.youtube.com/watch?v=8R1YpSopnHA">Click here to view the video on YouTube</a>.</p>

<p><a href="http://www.youtube.com/watch?v=8R1YpSopnHA">Youtube වල බලන්න. </a></p>
<ul>
<li>ප්‍රමාණය : 2.4 x 4.2 x 0.9 අගල්</li>
<li>Megapixels: 14 MP</li>
<li>Sensor Type: CMOS</li>
<li>Sensor ප්‍රමාණය : 6.2 by 4.6 (1/2.3&#8243;) mm</li>
<li>Storage : Secure Digital, Secure Digital High Capacity, Secure Digital Extended Capacity</li>
<li>බැටරි වර්ගය: Lithium Ion</li>
<li>උපරිම ISO ප්‍රමාණය: 3200</li>
<li>Optical Zoom: 18 x</li>
<li>Image Stabilization: Optical</li>
<li>Touch Screen:  නැත</li>
<li>LCD ප්‍රමාණය : 3 අගල්</li>
<li>Video Resolution: 720p (HD)</li>
<li>Interface  : micro USB</li>
<li>GPS: නැත.</li>
<li>On වෙන්න යන කාලය : තප්පර 3.8</li>
<li>චායාරුප දෙකක් ගන්න යන කාලය : තප්පර 1.5</li>
</ul>
<p><span id="more-436"></span></p>
<p>මෙම චායාරුප ගැනීමට flash එක භාවිතා කර නැත.</p>
<p>Zoom කිරීමට පෙර : <a href="https://dl.dropbox.com/u/8199739/Reviews/WB150F/BeforeZoom.JPG" target="_blank">Link</a><br />
Zoom කල පසු.: <a href="https://dl.dropbox.com/u/8199739/Reviews/WB150F/Zoomed.JPG" target="_blank">Link</a><br />
අඩු ආලෝකයේ දී : <a href="https://dl.dropbox.com/u/8199739/Reviews/WB150F/LowLight.JPG" target="_blank">Link</a><br />
සාමාන්‍ය ආලෝකයේ දී : <a href="https://dl.dropbox.com/u/8199739/Reviews/WB150F/SAM_0034.JPG" target="_blank">Link</a><br />
Macro : <a href="https://dl.dropbox.com/u/8199739/Reviews/WB150F/Macro.JPG" target="_blank">Link</a></p>
<p>මිල රුපියල්  Rs.33999.00 (නොමිලේ 4GB SD චාර්ඩ් එකක්)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.techkathamag.com/samsung-wb150f-smart-camera-sinhala-review/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>
<!-- This Quick Cache file was built for (  www.techkathamag.com/feed/ ) in 0.69118 seconds, on Jun 18th, 2013 at 9:03 pm UTC. -->
<!-- This Quick Cache file will automatically expire ( and be re-built automatically ) on Jun 18th, 2013 at 10:03 pm UTC -->