{"id":1190,"date":"2023-09-01T18:21:17","date_gmt":"2023-09-01T18:21:17","guid":{"rendered":"https:\/\/runonur.xyz\/?p=1190"},"modified":"2025-09-29T19:04:47","modified_gmt":"2025-09-29T19:04:47","slug":"ponghardon-collider","status":"publish","type":"post","link":"https:\/\/runonur.xyz\/index.php\/2023\/09\/01\/ponghardon-collider\/","title":{"rendered":"Pong:Hardon Collider"},"content":{"rendered":"\n<p><em>\u201cPong\u201d ilk bilgisayar oyunudur. \u0130lgilenenler i\u00e7in tarih\u00e7esi hakk\u0131nda bir\u00e7ok kaynak bulunuyor. Uzun bir s\u00fcre kafamdaki \u201cPong\u201d benzerini olu\u015fturmak i\u00e7in \u00e7abalad\u0131m. Fakat benim ilgimi \u00e7eken fizik bak\u0131\u015f a\u00e7\u0131s\u0131 oldu\u011fu i\u00e7in yapt\u0131\u011f\u0131m \u00e7al\u0131\u015fmalar pek i\u00e7ime sinmedi. Ayr\u0131ca ilk ba\u015fta \u201cMultiplayer\u201d ve \u201cNetwork taraf\u0131na baya kafa yordum ve bir\u00e7ok \u015fey \u00f6\u011frendim fakat sonradan \u201cCollision\u201d(\u00c7arp\u0131\u015fma) denen olay\u0131n \u00fczerine&nbsp;daha \u00e7ok<\/em>&nbsp;<em>gittim ve ald\u0131\u011f\u0131m sonu\u00e7tan memnunum. Belki ilerleyen zamanda \u201cMultiplayer\u201d konusuna da de\u011finen bir yaz\u0131 yazabilirim. O zaman ba\u015flayal\u0131m!<\/em><\/p>\n\n\n\n<p>\u201cMultiplayer\u201d \u00f6zelliklerini g\u00f6z \u00f6n\u00fcnden kald\u0131rd\u0131ktan sonra, daha tecr\u00fcbeli oldu\u011fum \u201cLua\u201d dili ve \u201cL\u00f6ve\u201d yap\u0131s\u0131yla \u201cCollision\u201d olay\u0131na e\u011fildim. Bir\u00e7ok \u201cCollision\u201d k\u00fct\u00fcphanesi ile kar\u015f\u0131la\u015ft\u0131\u011f\u0131m\u0131 s\u00f6ylemeliyim. Bunlar i\u00e7inde \u201cHardon Collider\u201d yapt\u0131\u011f\u0131m \u00e7al\u0131\u015fmaya daha uygun bir k\u00fct\u00fcphane oldu\u011fu i\u00e7in \u00f6ne \u00e7\u0131kt\u0131. ( \u0130smini ba\u015fka bir \u201cCollider\u201d ile kar\u0131\u015ft\u0131rmak m\u00fcmk\u00fcn. Ama o bamba\u015fka bir \u201cCollider\u201d.* ) *<a href=\"https:\/\/en.wikipedia.org\/wiki\/Large_Hadron_Collider\">https:\/\/en.wikipedia.org\/wiki\/Large_Hadron_Collider<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1005\" height=\"792\" src=\"https:\/\/runonur.xyz\/wp-content\/uploads\/2023\/09\/Pong-Animation.gif\" alt=\"\" class=\"wp-image-1191\"\/><figcaption class=\"wp-element-caption\">Pong \u201cHardon Collider\u201d<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"327\" height=\"236\" src=\"https:\/\/runonur.xyz\/wp-content\/uploads\/2023\/09\/project-files.png\" alt=\"\" class=\"wp-image-1192\" srcset=\"https:\/\/runonur.xyz\/wp-content\/uploads\/2023\/09\/project-files.png 327w, https:\/\/runonur.xyz\/wp-content\/uploads\/2023\/09\/project-files-300x217.png 300w\" sizes=\"auto, (max-width: 327px) 100vw, 327px\" \/><figcaption class=\"wp-element-caption\">Proje dosyalar\u0131 ve d\u00fczeni<\/figcaption><\/figure>\n\n\n\n<p>Ana kod i\u00e7erisinde \u201cHardon Collider\u201d k\u00fct\u00fcphanesini ve kendi olu\u015fturdu\u011fum fonksiyonlar\u0131 \u00e7a\u011f\u0131r\u0131p kullanabiliriz.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"645\" src=\"https:\/\/runonur.xyz\/wp-content\/uploads\/2023\/09\/main-1024x645.png\" alt=\"\" class=\"wp-image-1193\" srcset=\"https:\/\/runonur.xyz\/wp-content\/uploads\/2023\/09\/main-1024x645.png 1024w, https:\/\/runonur.xyz\/wp-content\/uploads\/2023\/09\/main-300x189.png 300w, https:\/\/runonur.xyz\/wp-content\/uploads\/2023\/09\/main-768x484.png 768w, https:\/\/runonur.xyz\/wp-content\/uploads\/2023\/09\/main.png 1122w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Ana kod<\/figcaption><\/figure>\n\n\n\n<p>Ama en \u00f6nemlisi \u201cCollision\u201d ve bunu a\u015fa\u011f\u0131da k\u0131s\u0131m k\u0131s\u0131m g\u00f6rebiliriz.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"371\" src=\"https:\/\/runonur.xyz\/wp-content\/uploads\/2023\/09\/collision_ball_boundiries-1024x371.png\" alt=\"\" class=\"wp-image-1194\" srcset=\"https:\/\/runonur.xyz\/wp-content\/uploads\/2023\/09\/collision_ball_boundiries-1024x371.png 1024w, https:\/\/runonur.xyz\/wp-content\/uploads\/2023\/09\/collision_ball_boundiries-300x109.png 300w, https:\/\/runonur.xyz\/wp-content\/uploads\/2023\/09\/collision_ball_boundiries-768x278.png 768w, https:\/\/runonur.xyz\/wp-content\/uploads\/2023\/09\/collision_ball_boundiries.png 1168w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">\u201cCollision\u201d (Top ile duvarlar aras\u0131ndaki etkile\u015fim)<\/figcaption><\/figure>\n\n\n\n<p>Statik duvarlarla dinamik topun etkile\u015fimi yukar\u0131daki fonksiyonlarla tan\u0131mland\u0131. Buna g\u00f6re \u201ccollidesWith\u201d fonksiyonuyla statik duvarlarla dinamik topun \u00e7arp\u0131\u015fmas\u0131 ko\u015fuluna bak\u0131l\u0131p, dinamik topun h\u0131z vekt\u00f6r\u00fc bile\u015fenlerini de\u011fi\u015ftirmek ve b\u00f6ylece dinamik topun y\u00f6n\u00fcn\u00fc de\u011fi\u015ftirmek sonucu elde edilebilir.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"319\" src=\"https:\/\/runonur.xyz\/wp-content\/uploads\/2023\/09\/collisin_paddle_boundries-1024x319.png\" alt=\"\" class=\"wp-image-1195\" srcset=\"https:\/\/runonur.xyz\/wp-content\/uploads\/2023\/09\/collisin_paddle_boundries-1024x319.png 1024w, https:\/\/runonur.xyz\/wp-content\/uploads\/2023\/09\/collisin_paddle_boundries-300x93.png 300w, https:\/\/runonur.xyz\/wp-content\/uploads\/2023\/09\/collisin_paddle_boundries-768x239.png 768w, https:\/\/runonur.xyz\/wp-content\/uploads\/2023\/09\/collisin_paddle_boundries.png 1154w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">\u201cCollision\u201d (Platform ile duvarlar aras\u0131ndaki etkile\u015fim)<\/figcaption><\/figure>\n\n\n\n<p>Oyuncular\u0131n kontrol ettikleri dinamik \u201cPlatform\u201d ile statik duvarlar\u0131n etkile\u015fimi i\u00e7in ise yukar\u0131daki fonksiyon par\u00e7as\u0131 kullan\u0131ld\u0131.<\/p>\n\n\n\n<p>\u201cTunneling\u201d denen topun platformlar\u0131n \u00fcst veya alt k\u0131sm\u0131ndan i\u00e7eri s\u00fcz\u00fclmesi olay\u0131n\u0131n \u00f6n\u00fcne ge\u00e7mek istiyoruz. Bu sebeple, \u201cPlatform\u201d i\u00e7in yard\u0131mc\u0131 \u015fekiller \u201cCollision\u201d amac\u0131yla olu\u015fturuldu.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"995\" height=\"696\" src=\"https:\/\/runonur.xyz\/wp-content\/uploads\/2023\/09\/paddle_top_bottom.png\" alt=\"\" class=\"wp-image-1196\" srcset=\"https:\/\/runonur.xyz\/wp-content\/uploads\/2023\/09\/paddle_top_bottom.png 995w, https:\/\/runonur.xyz\/wp-content\/uploads\/2023\/09\/paddle_top_bottom-300x210.png 300w, https:\/\/runonur.xyz\/wp-content\/uploads\/2023\/09\/paddle_top_bottom-768x537.png 768w\" sizes=\"auto, (max-width: 995px) 100vw, 995px\" \/><figcaption class=\"wp-element-caption\">\u201cPlatform\u201d \u00dcst ve Alt k\u0131s\u0131mlar\u0131 i\u00e7in Olu\u015fturulan \u015eekiller (K\u0131rm\u0131z\u0131 Renkte G\u00f6z\u00fckmektedir)<\/figcaption><\/figure>\n\n\n\n<p>Dinamik nesnelerin (Platform ve top) etkile\u015fimi a\u015fa\u011f\u0131da g\u00f6r\u00fclmekte. Topun platformun \u00f6n k\u0131sm\u0131nda etkile\u015fimi i\u00e7in \u201ccollidesWith\u201d fonksiyonu ile \u00f6nce yine \u201cCollision\u201d ko\u015fuluna bak\u0131l\u0131yor sonras\u0131nda ise for d\u00f6ng\u00fcs\u00fcyle iki nesnenin \u201cCollision\u201d ayr\u0131\u015ft\u0131r\u0131c\u0131 vekt\u00f6r bile\u015fenleri (delta.x, delta.y) \u201cmove\u201d fonksiyonunda kullan\u0131larak ve h\u0131z vekt\u00f6r\u00fc bile\u015feninin de\u011fi\u015ftirilmesi ile topun \u201cCollision\u201d b\u00f6lgesinden \u00e7\u0131kar\u0131lmas\u0131 sa\u011flan\u0131yor.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"486\" src=\"https:\/\/runonur.xyz\/wp-content\/uploads\/2023\/09\/collision_paddle_ball-1024x486.png\" alt=\"\" class=\"wp-image-1197\" srcset=\"https:\/\/runonur.xyz\/wp-content\/uploads\/2023\/09\/collision_paddle_ball-1024x486.png 1024w, https:\/\/runonur.xyz\/wp-content\/uploads\/2023\/09\/collision_paddle_ball-300x143.png 300w, https:\/\/runonur.xyz\/wp-content\/uploads\/2023\/09\/collision_paddle_ball-768x365.png 768w, https:\/\/runonur.xyz\/wp-content\/uploads\/2023\/09\/collision_paddle_ball-1200x570.png 1200w, https:\/\/runonur.xyz\/wp-content\/uploads\/2023\/09\/collision_paddle_ball.png 1425w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Dinamik nesnelerin \u201cCollision\u201d etkile\u015fim fonksiyonu<\/figcaption><\/figure>\n\n\n\n<p>Topun platformlar\u0131n \u00fcst ve alt k\u0131s\u0131mlar\u0131yla etkile\u015fimi i\u00e7in ise kod biraz farkl\u0131la\u015f\u0131yor. Burada ayr\u0131\u015ft\u0131r\u0131c\u0131 vekt\u00f6r birle\u015fenleri platform h\u0131z bile\u015fenleri ile \u00e7arp\u0131l\u0131yor, for d\u00f6ng\u00fcs\u00fcnden \u00f6nce de topun h\u0131z vekt\u00f6r bile\u015feni de\u011fi\u015ftirilerek, \u201cTunnelling\u201d problemi \u00e7\u00f6z\u00fcl\u00fcyor ve daha g\u00fczel bir etki g\u00f6zlemleniyor.<\/p>\n\n\n\n<p>Bu \u00e7al\u0131\u015fman\u0131n di\u011fer kodlar\u0131n\u0131 da ilgilenen olursa diye payla\u015fay\u0131m. \u201cPlatform\u201d fonksiyonlar\u0131 i\u00e7in kodlar\u0131 a\u015fa\u011f\u0131da belirttim.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1015\" height=\"677\" src=\"https:\/\/runonur.xyz\/wp-content\/uploads\/2023\/09\/pongdigerkodlar2.png\" alt=\"\" class=\"wp-image-1198\" srcset=\"https:\/\/runonur.xyz\/wp-content\/uploads\/2023\/09\/pongdigerkodlar2.png 1015w, https:\/\/runonur.xyz\/wp-content\/uploads\/2023\/09\/pongdigerkodlar2-300x200.png 300w, https:\/\/runonur.xyz\/wp-content\/uploads\/2023\/09\/pongdigerkodlar2-768x512.png 768w\" sizes=\"auto, (max-width: 1015px) 100vw, 1015px\" \/><figcaption class=\"wp-element-caption\">Platform Fonksiyonlar\u0131<\/figcaption><\/figure>\n\n\n\n<p>Di\u011fer fonksiyonlar i\u00e7in ise kodlar a\u015fa\u011f\u0131da g\u00f6r\u00fclebilir.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"883\" height=\"780\" src=\"https:\/\/runonur.xyz\/wp-content\/uploads\/2023\/09\/pongdigerkodlar1.png\" alt=\"\" class=\"wp-image-1199\" srcset=\"https:\/\/runonur.xyz\/wp-content\/uploads\/2023\/09\/pongdigerkodlar1.png 883w, https:\/\/runonur.xyz\/wp-content\/uploads\/2023\/09\/pongdigerkodlar1-300x265.png 300w, https:\/\/runonur.xyz\/wp-content\/uploads\/2023\/09\/pongdigerkodlar1-768x678.png 768w\" sizes=\"auto, (max-width: 883px) 100vw, 883px\" \/><figcaption class=\"wp-element-caption\">Pong Di\u011fer Kodlar<\/figcaption><\/figure>\n\n\n\n<p>\u201cCollision\u201d olay\u0131n\u0131n oyun tasar\u0131m\u0131nda \u00f6nemli bir yeri vard\u0131r. Dikd\u00f6rtgen- Dikd\u00f6rtgen \u201cCollision\u201d olaylar\u0131n\u0131 daha iyi \u00e7\u00f6z\u00fcmleyen k\u00fct\u00fcphaneler bulunuyor. Farkl\u0131 \u015fekillerde geometrik nesnelerin \u201cCollision\u201d i\u015flemleri biraz daha fazla \u00e7aba gerektirebiliyor.<\/p>\n\n\n\n<p>\u0130nternette \u201cHardon Collider\u201d ile ilgili fazla kaynak bulunmuyor. Umar\u0131m faydal\u0131 bir yaz\u0131 olmu\u015ftur.<\/p>\n\n\n\n<p>A\u015fa\u011f\u0131da yararland\u0131\u011f\u0131m kaynaklar\u0131 ve k\u00fct\u00fcphane web linklerini belirttim. Kulland\u0131\u011f\u0131m kod edit\u00f6r\u00fcn\u00fcn linkini de a\u015fa\u011f\u0131da g\u00f6rebilirsiniz.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/runonur.xyz\/wp-content\/uploads\/2023\/02\/cropped-logotest.png\" alt=\"\" class=\"wp-image-1171\" style=\"width:214px;height:108px\" width=\"214\" height=\"108\" srcset=\"https:\/\/runonur.xyz\/wp-content\/uploads\/2023\/02\/cropped-logotest.png 340w, https:\/\/runonur.xyz\/wp-content\/uploads\/2023\/02\/cropped-logotest-300x151.png 300w\" sizes=\"auto, (max-width: 214px) 100vw, 214px\" \/><figcaption class=\"wp-element-caption\"><strong><em>RUNONUR<\/em><\/strong><\/figcaption><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.lua.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.lua.org\/<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/love2d.org\/\">https:\/\/love2d.org\/<\/a><\/li>\n\n\n\n<li><a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/vrld\/HC\" target=\"_blank\">https:\/\/github.com\/vrld\/HC<\/a><\/li>\n\n\n\n<li><a rel=\"noreferrer noopener\" href=\"https:\/\/hc.readthedocs.io\/en\/latest\/\" target=\"_blank\">https:\/\/hc.readthedocs.io\/en\/latest\/<\/a><\/li>\n\n\n\n<li><a rel=\"noreferrer noopener\" href=\"https:\/\/vrld.github.io\/HardonCollider\/tutorial.html\" target=\"_blank\">https:\/\/vrld.github.io\/HardonCollider\/tutorial.html<\/a><\/li>\n\n\n\n<li><a rel=\"noreferrer noopener\" href=\"https:\/\/sheepolution.com\/learn\/book\/23\" target=\"_blank\">https:\/\/sheepolution.com\/learn\/book\/23<\/a><\/li>\n\n\n\n<li><a rel=\"noreferrer noopener\" href=\"https:\/\/studio.zerobrane.com\/\" target=\"_blank\">https:\/\/studio.zerobrane.com\/<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>\u201cPong\u201d ilk bilgisayar oyunudur. \u0130lgilenenler i\u00e7in tarih\u00e7esi hakk\u0131nda bir\u00e7ok kaynak bulunuyor. Uzun bir s\u00fcre kafamdaki \u201cPong\u201d benzerini olu\u015fturmak i\u00e7in \u00e7abalad\u0131m. Fakat benim ilgimi \u00e7eken fizik bak\u0131\u015f a\u00e7\u0131s\u0131 oldu\u011fu i\u00e7in yapt\u0131\u011f\u0131m \u00e7al\u0131\u015fmalar pek i\u00e7ime sinmedi. Ayr\u0131ca ilk ba\u015fta \u201cMultiplayer\u201d ve \u201cNetwork taraf\u0131na baya kafa yordum ve bir\u00e7ok \u015fey \u00f6\u011frendim fakat sonradan \u201cCollision\u201d(\u00c7arp\u0131\u015fma) denen olay\u0131n \u00fczerine&nbsp;daha \u00e7ok&nbsp;gittim [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1190","post","type-post","status-publish","format-standard","hentry","category-game-development"],"_links":{"self":[{"href":"https:\/\/runonur.xyz\/index.php\/wp-json\/wp\/v2\/posts\/1190","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/runonur.xyz\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/runonur.xyz\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/runonur.xyz\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/runonur.xyz\/index.php\/wp-json\/wp\/v2\/comments?post=1190"}],"version-history":[{"count":2,"href":"https:\/\/runonur.xyz\/index.php\/wp-json\/wp\/v2\/posts\/1190\/revisions"}],"predecessor-version":[{"id":1254,"href":"https:\/\/runonur.xyz\/index.php\/wp-json\/wp\/v2\/posts\/1190\/revisions\/1254"}],"wp:attachment":[{"href":"https:\/\/runonur.xyz\/index.php\/wp-json\/wp\/v2\/media?parent=1190"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/runonur.xyz\/index.php\/wp-json\/wp\/v2\/categories?post=1190"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/runonur.xyz\/index.php\/wp-json\/wp\/v2\/tags?post=1190"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}