{"id":28410,"date":"2025-08-29T08:30:27","date_gmt":"2025-08-29T05:30:27","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/pygame-ile-chrome-dino-oyunu-dinoyu-kosturmak-3-bolum\/"},"modified":"2025-08-29T08:30:27","modified_gmt":"2025-08-29T05:30:27","slug":"pygame-ile-chrome-dino-oyunu-dinoyu-kosturmak-3-bolum","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/pygame-ile-chrome-dino-oyunu-dinoyu-kosturmak-3-bolum\/","title":{"rendered":"Pygame ile Chrome Dino Oyunu: Dino&#8217;yu Ko\u015fturmak (3. B\u00f6l\u00fcm)"},"content":{"rendered":"<p>Pygame ile Chrome Dino Oyunu: Dino&#8217;yu Ko\u015fturmak (3. B\u00f6l\u00fcm)<\/p>\n<p>S\u0131k\u0131c\u0131 bir internet ba\u011flant\u0131s\u0131 kesintisi s\u0131ras\u0131nda hepimizin kar\u015f\u0131la\u015ft\u0131\u011f\u0131 o nostaljik oyun, Chrome Dino oyunu.  Bu makalede, Python&#8217;\u0131n g\u00fc\u00e7l\u00fc oyun geli\u015ftirme k\u00fct\u00fcphanesi Pygame ile bu ikonik oyunu ad\u0131m ad\u0131m nas\u0131l olu\u015fturaca\u011f\u0131n\u0131z\u0131, \u00f6zellikle de dinozorun ko\u015fma mekani\u011fini nas\u0131l kodlayaca\u011f\u0131n\u0131z\u0131 \u00f6\u011frenece\u011fiz.  Pygame&#8217;in sundu\u011fu olanaklar\u0131 kullanarak, kendi dinozor oyununuzu geli\u015ftirmek i\u00e7in gerekli t\u00fcm ad\u0131mlar\u0131, \u00f6rnek kodlar ve g\u00f6rsel a\u00e7\u0131klamalarla ele alaca\u011f\u0131z.  Haz\u0131rsan\u0131z, ba\u015flayal\u0131m!<\/p>\n<h2>Pygame&#8217;e Giri\u015f: Dino Oyunu \u0130\u00e7in Temel Haz\u0131rl\u0131klar<\/h2>\n<p>\u00d6ncelikle, Pygame&#8217;in ne oldu\u011funu ve neden bu proje i\u00e7in ideal bir se\u00e7im oldu\u011funu anlamak \u00f6nemlidir. Pygame, Python i\u00e7in geli\u015ftirilmi\u015f, 2 boyutlu oyunlar olu\u015fturmay\u0131 kolayla\u015ft\u0131ran bir k\u00fct\u00fcphanedir.  Kullan\u0131m\u0131 olduk\u00e7a basit ve anla\u015f\u0131l\u0131r olmas\u0131yla bilinir.  Bu projede, Pygame&#8217;in sprite y\u00f6netimi, olay i\u015fleme ve ekran \u00e7izimi gibi bir\u00e7ok \u00f6zelli\u011finden yararlanaca\u011f\u0131z. Pygame&#8217;i kurmak i\u00e7in terminal veya komut istemcinizde <code>pip install pygame<\/code> komutunu \u00e7al\u0131\u015ft\u0131rman\u0131z yeterlidir.  Kurulum tamamland\u0131ktan sonra, ilk Pygame program\u0131n\u0131z\u0131 olu\u015fturmaya ba\u015flayabiliriz.  Bu b\u00f6l\u00fcmde, temel Pygame penceresi olu\u015fturma ve temel \u00f6\u011feleri eklemeyi \u00f6\u011frenece\u011fiz.  Daha sonra, dinozorumuzun ko\u015fma animasyonunu eklemek i\u00e7in Pygame&#8217;in sprite ve y\u00fckleme fonksiyonlar\u0131n\u0131 kullanaca\u011f\u0131z.<\/p>\n<p>Pygame&#8217;in temellerini kavrad\u0131ktan sonra, dinozorumuzu ekrana yerle\u015ftirip hareket ettirebiliriz.  Bunun i\u00e7in, Pygame&#8217;in y\u00fckleme fonksiyonlar\u0131n\u0131 ve g\u00f6r\u00fcnt\u00fc i\u015fleme yeteneklerini kullanaca\u011f\u0131z.  Dinozor resmi, daha \u00f6nce haz\u0131rlad\u0131\u011f\u0131m\u0131z veya internetten indirdi\u011fimiz bir png dosyas\u0131 olabilir.  Bu resmin, Pygame taraf\u0131ndan y\u00fcklenmesi ve uygun \u015fekilde ekrana yerle\u015ftirilmesi gereklidir.  Ayr\u0131ca, dinozorun s\u00fcrekli olarak ko\u015ftu\u011fu animasyonunu sa\u011flamak i\u00e7in, farkl\u0131 karelerden olu\u015fan bir sprite dizisi kullanaca\u011f\u0131z.  Bu dizideki kareler, arka arkaya g\u00f6sterilerek dinozorun ko\u015fma hareketi sim\u00fcle edilecektir.  Bu teknik, oyunumuzun g\u00f6rsel olarak daha \u00e7ekici olmas\u0131n\u0131 sa\u011flayacakt\u0131r.<\/p>\n<h2>Dinozorumuzu Nas\u0131l \u00c7izelim ve Hareket Ettirelim?<\/h2>\n<p>\u015eimdi, kodlama k\u0131sm\u0131na ge\u00e7meden \u00f6nce temel stratejimizi belirleyelim.  Dinozorumuzun hareketini, klavyeden al\u0131nan giri\u015flere g\u00f6re y\u00f6netece\u011fiz.  \u00d6rne\u011fin, sa\u011f y\u00f6n tu\u015funa bas\u0131ld\u0131\u011f\u0131nda dinozor sa\u011fa, sol y\u00f6n tu\u015funa bas\u0131ld\u0131\u011f\u0131nda ise sola hareket edecektir.  Bu hareket, dinozorun pozisyonunu g\u00fcncelleyerek ger\u00e7ekle\u015ftirilecektir.  Pygame&#8217;in <code>pygame.event.get()<\/code> fonksiyonunu kullanarak klavyeden gelen olaylar\u0131 yakalayacak ve buna g\u00f6re dinozorun konumunu g\u00fcncelleyece\u011fiz.<\/p>\n<p>\u0130\u015fte dinozoru \u00e7izme ve hareket ettirme ile ilgili temel kod blo\u011fu:<\/p>\n<pre><code class=\"language-python\">import pygame\n\npygame.init()\n\n# Ekran boyutlar\u0131\nscreen_width = 800\nscreen_height = 600\nscreen = pygame.display.set_mode((screen_width, screen_height))\n\n# Dinozor resmi y\u00fckleme (dino.png dosyas\u0131n\u0131n olmas\u0131 gerekir)\ndino_image = pygame.image.load(\"dino.png\")\ndino_x = 50\ndino_y = screen_height - dino_image.get_height() - 10\ndino_x_change = 0\n\nrunning = True\nwhile running:\n    for event in pygame.event.get():\n        if event.type == pygame.QUIT:\n            running = False\n        if event.type == pygame.KEYDOWN:\n            if event.key == pygame.K_RIGHT:\n                dino_x_change = 5\n            if event.key == pygame.K_LEFT:\n                dino_x_change = -5\n        if event.type == pygame.KEYUP:\n            if event.key == pygame.K_RIGHT or event.key == pygame.K_LEFT:\n                dino_x_change = 0\n\n    dino_x += dino_x_change\n    # Ekran s\u0131n\u0131rlar\u0131n\u0131 kontrol etme\n    if dino_x < 0:\n        dino_x = 0\n    elif dino_x > screen_width - dino_image.get_width():\n        dino_x = screen_width - dino_image.get_width()\n\n    screen.fill((255, 255, 255))  # Beyaz arka plan\n    screen.blit(dino_image, (dino_x, dino_y))\n    pygame.display.update()\n\npygame.quit()<\/pre>\n<p><\/code><\/p>\n<p>Bu kodda,  dinozorun resmini y\u00fckl\u00fcyoruz ve kullan\u0131c\u0131 input'lar\u0131na g\u00f6re x koordinat\u0131n\u0131 de\u011fi\u015ftiriyoruz. Ekran s\u0131n\u0131rlar\u0131n\u0131 a\u015fmas\u0131n\u0131 engellemek i\u00e7in kontrol ekledik. Daha geli\u015fmi\u015f bir oyun i\u00e7in animasyon ve engeller eklememiz gerekecek.<\/p>\n<h2>Dinozorun Ko\u015fma Animasyonunu Ekleyerek Oyunu Canland\u0131rma<\/h2>\n<p>Statik bir dinozor yerine, hareketli bir dinozor g\u00f6rsel olarak \u00e7ok daha etkileyici olacakt\u0131r. Bunu, farkl\u0131 ko\u015fma pozisyonlar\u0131n\u0131 g\u00f6steren bir dizi resim kullanarak ba\u015farabiliriz.  Her bir resim, dinozorun bir ad\u0131m\u0131n\u0131 temsil edecektir. Bu resimleri Pygame'de s\u0131rayla g\u00f6stererek dinozorun ko\u015ftu\u011fu ill\u00fczyonunu yaratabiliriz.  Bu i\u015fleme sprite animasyonu denir.  Bir sprite sayac\u0131na ihtiyac\u0131m\u0131z olacak ve bu sayac\u0131 her karede art\u0131rarak bir sonraki resmi g\u00f6sterece\u011fiz.  Resimlerin dizisini bir liste veya daha verimli bir y\u00f6ntem olan bir pygame.sprite.Sprite s\u0131n\u0131f\u0131 ile y\u00f6netebiliriz.<\/p>\n<p>\u00d6rnek kod: (dino_run_1.png, dino_run_2.png gibi dosyalar\u0131n olmas\u0131 gerekmektedir)<\/p>\n<pre><code class=\"language-python\">import pygame\n\n# ... (\u00d6nceki kodun devam\u0131)\n\ndino_run = [pygame.image.load(f\"dino_run_{i}.png\") for i in range(1, 3)] # 2 ko\u015fma resmi\ndino_index = 0\ndino_image = dino_run[dino_index]\n\n\nrunning = True\nwhile running:\n    # ... (\u00d6nceki olay i\u015fleme k\u0131sm\u0131)\n\n    dino_index += 1\n    if dino_index >= len(dino_run):\n        dino_index = 0\n    dino_image = dino_run[dino_index]\n\n    # ... (Ekran \u00e7izme ve g\u00fcncelleme k\u0131sm\u0131)<\/pre>\n<p><\/code><\/p>\n<h2>Oyun Performans\u0131n\u0131 Optimize Etme: \u0130pu\u00e7lar\u0131 ve P\u00fcf Noktalar\u0131<\/h2>\n<p>Oyunun performans\u0131, \u00f6zellikle daha fazla nesne eklendi\u011finde ve oyun karma\u015f\u0131kla\u015ft\u0131\u011f\u0131nda \u00f6nemlidir.  \u0130\u015fte performans\u0131 art\u0131rmak i\u00e7in baz\u0131 ipu\u00e7lar\u0131:<\/p>\n<ul>\n<li><b>Sprite Sheet Kullan\u0131m\u0131:<\/b> Bir\u00e7ok k\u00fc\u00e7\u00fck resmi tek bir b\u00fcy\u00fck resim dosyas\u0131 (sprite sheet) i\u00e7ine koyarak dosya y\u00fckleme i\u015flemlerini azaltabilirsiniz.  Pygame'in <code>pygame.Surface.subsurface()<\/code> fonksiyonuyla bu b\u00fcy\u00fck resimden alt par\u00e7alar\u0131 (her bir sprite) kesip kullanabilirsiniz. Bu, dosya okuma i\u015flemlerini b\u00fcy\u00fck \u00f6l\u00e7\u00fcde azalt\u0131r ve performans\u0131 art\u0131r\u0131r.<\/li>\n<li><b>\u00c7izim Optimizasyonu:<\/b> Gereksiz \u00e7izim i\u015flemlerini en aza indirmeye \u00e7al\u0131\u015f\u0131n. Sadece gerekli olan nesneleri her karede yeniden \u00e7izin.   \u00d6rne\u011fin, arka plan g\u00f6r\u00fcnt\u00fcs\u00fcn\u00fc her karede yeniden \u00e7izmek yerine, sadece bir kez \u00e7izip sonraki karelerde g\u00fcncellemeye gerek duymayan nesneler olarak tutmak performans\u0131 art\u0131r\u0131r.<\/li>\n<li><b>Pygame'in <code>Surface.blit()<\/code> fonksiyonunu verimli kullan\u0131n.<\/b> <code>blit()<\/code> fonksiyonunu optimize etmek i\u00e7in, \u00e7izim s\u0131ras\u0131na dikkat etmek gerekebilir. \u00d6rne\u011fin, daha b\u00fcy\u00fck ve daha arka planda olan nesneleri daha \u00f6nce \u00e7izmek daha h\u0131zl\u0131 olabilir.<\/li>\n<li><b>Pygame'in <code>pygame.transform.scale()<\/code> fonksiyonunu dikkatli kullan\u0131n.<\/b> Bu fonksiyon, resimleri yeniden boyutland\u0131r\u0131r.  Bu i\u015flem maliyetli oldu\u011fundan, sadece gerekti\u011finde kullan\u0131lmal\u0131d\u0131r. Resimleri \u00f6nceden istenen boyutta y\u00fckleyerek bu maliyetten ka\u00e7\u0131nabilirsiniz.<\/li>\n<\/ul>\n<h2>Engelleri ve \u00c7arp\u0131\u015fma Tespitini Ekleyerek Oyunu Zorla\u015ft\u0131rma<\/h2>\n<p>Dinozorumuzun art\u0131k ko\u015ftu\u011funu varsayal\u0131m.  Oyunu daha ilgin\u00e7 hale getirmek i\u00e7in engeller eklemeliyiz.  Bu engeller, kakt\u00fcsler veya ku\u015flar olabilir.  Bu engelleri rastgele zamanlarda ekranda olu\u015fturup dinozorun pozisyonuna do\u011fru hareket ettirebiliriz.  \u00c7arp\u0131\u015fma tespiti i\u00e7in ise Pygame'in <code>pygame.Rect<\/code> s\u0131n\u0131f\u0131ndan faydalanabiliriz.  Her nesne (dinozor ve engeller) i\u00e7in bir <code>pygame.Rect<\/code> nesnesi olu\u015fturup, <code>colliderect()<\/code> fonksiyonunu kullanarak \u00e7arp\u0131\u015fmalar\u0131 tespit edebiliriz.  \u00c7arp\u0131\u015fma tespit algoritmas\u0131, ger\u00e7ek zamanl\u0131 oyunlarda performans a\u00e7\u0131s\u0131ndan kritik bir unsurdur.  Verimli bir algoritma se\u00e7mek oyunun ak\u0131c\u0131l\u0131\u011f\u0131n\u0131 korumas\u0131 i\u00e7in \u00f6nemlidir.<\/p>\n<p>\u00d6rnek kod (basitle\u015ftirilmi\u015f):<\/p>\n<pre><code class=\"language-python\"># ... (\u00d6nceki kod)\n\ncactus_x = 800\ncactus_y = screen_height - 70 # Kakt\u00fcs\u00fcn boyuna g\u00f6re ayarlay\u0131n\ncactus_width = 30\ncactus_height = 70\ncactus_rect = pygame.Rect(cactus_x, cactus_y, cactus_width, cactus_height)\ncactus_speed = 5\n\nrunning = True\nwhile running:\n    # ... (Olay i\u015fleme)\n    cactus_x -= cactus_speed\n    cactus_rect.x = cactus_x\n    dino_rect = dino_image.get_rect(topleft=(dino_x,dino_y))\n\n\n    if dino_rect.colliderect(cactus_rect):\n        print(\"\u00c7arp\u0131\u015fma!\")\n        running = False\n\n    # ... (Ekran \u00e7izme)\n\n    pygame.draw.rect(screen, (0, 128, 0), cactus_rect) # Ye\u015fil kakt\u00fcs\n    # ...<\/pre>\n<p><\/code><\/p>\n<h2>\u0130leri D\u00fczey Konular: Puanlama Sistemi, Oyun Sonu Ekran\u0131<\/h2>\n<p>Oyunun daha etkileyici hale getirilmesi i\u00e7in puanlama sistemi ve oyun sonu ekran\u0131 ekleyebiliriz. Puanlama sisteminde, dinozorun ka\u00e7 saniye hayatta kald\u0131\u011f\u0131n\u0131 veya ka\u00e7 engelden ka\u00e7t\u0131\u011f\u0131n\u0131 takip edebiliriz.  Oyun sonu ekran\u0131nda ise oyuncunun ald\u0131\u011f\u0131 puan\u0131 ve tekrar oynama se\u00e7ene\u011fini sunabiliriz. Bu \u00f6zelliklerin eklenmesi, oyunun kullan\u0131c\u0131 deneyimini \u00f6nemli \u00f6l\u00e7\u00fcde iyile\u015ftirecektir.  Puanlama i\u00e7in global bir de\u011fi\u015fken kullanabilir ve her yeni engelden sonra bu de\u011fi\u015fkeni g\u00fcncelleyebiliriz.  Oyun sonu ekran\u0131 i\u00e7in, farkl\u0131 bir fonksiyon kullanarak farkl\u0131 bir ekran olu\u015fturabiliriz ve bu ekranda oyuncunun puan\u0131n\u0131 g\u00f6sterebiliriz.<\/p>\n<p>Oyunun ileri seviye \u00f6zelliklerini eklemek i\u00e7in farkl\u0131 tasar\u0131m kal\u0131plar\u0131n\u0131 ve mimarileri de de\u011ferlendirebilirsiniz. \u00d6rne\u011fin, MVC (Model-View-Controller) veya MVVM (Model-View-ViewModel) gibi kal\u0131plar, kodun daha organize ve \u00f6l\u00e7eklenebilir olmas\u0131n\u0131 sa\u011flayacakt\u0131r.  Daha b\u00fcy\u00fck ve daha karma\u015f\u0131k oyunlar i\u00e7in bu gibi mimarileri kullanman\u0131z, daha temiz ve anla\u015f\u0131l\u0131r bir kod yazman\u0131za yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<h2>\u00d6\u011frenme Yol Haritas\u0131<\/h2>\n<p>* <strong>Yeni Ba\u015flayan:<\/strong> Pygame kurulumu, basit bir pencere olu\u015fturma, statik bir dinozor resmi \u00e7izme.<br \/>\n* <strong>Orta:<\/strong> Dinozorun klavyeden kontrol edilmesi, basit ko\u015fma animasyonu, basit bir engel ekleme.<br \/>\n* <strong>\u0130leri D\u00fczey:<\/strong>  Sprite sheet kullan\u0131m\u0131,  \u00e7arp\u0131\u015fma tespiti, puanlama sistemi, oyun sonu ekran\u0131, geli\u015fmi\u015f animasyonlar, daha karma\u015f\u0131k oyun mekanikleri.<\/p>\n<h2>Sonu\u00e7<\/h2>\n<p>Bu makalede, Pygame kullanarak Chrome Dino oyununu nas\u0131l olu\u015fturaca\u011f\u0131n\u0131z\u0131, \u00f6zellikle de dinozorun ko\u015fma mekani\u011fini ad\u0131m ad\u0131m nas\u0131l kodlayaca\u011f\u0131n\u0131z\u0131 \u00f6\u011frendiniz.  Oyun geli\u015ftirmenin temel ad\u0131mlar\u0131n\u0131 \u00f6\u011frenme f\u0131rsat\u0131 buldunuz.  Daha fazla bilgi edinmek i\u00e7in Pygame dok\u00fcmantasyonuna ve \u00e7e\u015fitli online kaynaklara g\u00f6z atabilirsiniz.  Ayr\u0131ca, daha karma\u015f\u0131k oyun mekanikleri ve geli\u015fmi\u015f grafikler ekleyerek oyununuzu daha da geli\u015ftirebilirsiniz.  Daha fazla Pygame ile ilgili bilgi i\u00e7in <a href=\"https:\/\/fatihsoysal.com\">fatihsoysal.com<\/a> adresini ziyaret edebilirsiniz.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular<\/h3>\n<ul>\n<li><b>Pygame'i nas\u0131l kurar\u0131m?<\/b>  Komut sat\u0131r\u0131nda veya terminalde <code>pip install pygame<\/code> komutunu \u00e7al\u0131\u015ft\u0131r\u0131n.<\/li>\n<li><b>Dinozorun animasyonunu nas\u0131l h\u0131zland\u0131rabilirim?<\/b>  Animasyon karelerini daha h\u0131zl\u0131 g\u00f6stererek veya kare ge\u00e7i\u015f zaman\u0131n\u0131 azaltarak h\u0131zland\u0131rabilirsiniz.<\/li>\n<li><b>Daha fazla engel nas\u0131l eklerim?<\/b>  Engelleri bir liste veya dizi i\u00e7inde tutarak ve her karede yeni engeller ekleyip mevcut engelleri hareket ettirerek ekleyebilirsiniz.<\/li>\n<li><b>\u00c7arp\u0131\u015fma tespiti nas\u0131l iyile\u015ftirilir?<\/b>  Daha geli\u015fmi\u015f \u00e7arp\u0131\u015fma alg\u0131lama algoritmalar\u0131 kullanarak veya oyun nesnelerinin s\u0131n\u0131r kutular\u0131n\u0131 optimize ederek iyile\u015ftirebilirsiniz.<\/li>\n<li><b>Oyun performans\u0131n\u0131 nas\u0131l optimize ederim?<\/b> Yukar\u0131da bahsedilen optimizasyon tekniklerini kullanabilirsiniz.<\/li>\n<\/ul>\n<p>Yazar: Fatih Soysal<\/p>\n","protected":false},"excerpt":{"rendered":"Pygame ile Chrome Dino Oyunu: Dino&#8217;yu Ko\u015fturmak (3. B\u00f6l\u00fcm) S\u0131k\u0131c\u0131 bir internet ba\u011flant\u0131s\u0131 kesintisi s\u0131ras\u0131nda hepimizin kar\u015f\u0131la\u015ft\u0131\u011f\u0131 o&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-28410","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Pygame ile Chrome Dino Oyunu: Dino&#039;yu Ko\u015fturmak (3. B\u00f6l\u00fcm)<\/title>\n<meta name=\"description\" content=\"S\u0131k\u0131c\u0131 bir internet ba\u011flant\u0131s\u0131 kesintisi s\u0131ras\u0131nda hepimizin kar\u015f\u0131la\u015ft\u0131\u011f\u0131 o nostaljik oyun, Chrome Dino oyunu. Bu makalede, Python&#039;\u0131n g\u00fc\u00e7l\u00fc oyun geli\u015ftirme k\u00fct\u00fcphanesi Pygame ile bu ikonik oyunu ad\u0131m ad\u0131m nas\u0131l olu\u015fturaca\u011f\u0131n\u0131z\u0131, \u00f6zellikle de dinozorun ko\u015fma mekani\u011fini nas\u0131l kodlayaca\u011f\u0131n\u0131z\u0131 \u00f6\u011frenece\u011fiz. Pygame&#039;in sundu\u011fu olanaklar\u0131 kullanarak, kendi dinozor oyununuzu geli\u015ftirmek i\u00e7in gerekli t\u00fcm ad\u0131mlar\u0131, \u00f6rnek kodlar ve g\u00f6rsel a\u00e7\u0131klamalarla ele alaca\u011f\u0131z. Haz\u0131rsan\u0131z, ba\u015flayal\u0131m!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/pygame-ile-chrome-dino-oyunu-dinoyu-kosturmak-3-bolum\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Pygame ile Chrome Dino Oyunu: Dino&#039;yu Ko\u015fturmak (3. B\u00f6l\u00fcm)\" \/>\n<meta property=\"og:description\" content=\"S\u0131k\u0131c\u0131 bir internet ba\u011flant\u0131s\u0131 kesintisi s\u0131ras\u0131nda hepimizin kar\u015f\u0131la\u015ft\u0131\u011f\u0131 o nostaljik oyun, Chrome Dino oyunu. Bu makalede, Python&#039;\u0131n g\u00fc\u00e7l\u00fc oyun geli\u015ftirme k\u00fct\u00fcphanesi Pygame ile bu ikonik oyunu ad\u0131m ad\u0131m nas\u0131l olu\u015fturaca\u011f\u0131n\u0131z\u0131, \u00f6zellikle de dinozorun ko\u015fma mekani\u011fini nas\u0131l kodlayaca\u011f\u0131n\u0131z\u0131 \u00f6\u011frenece\u011fiz. Pygame&#039;in sundu\u011fu olanaklar\u0131 kullanarak, kendi dinozor oyununuzu geli\u015ftirmek i\u00e7in gerekli t\u00fcm ad\u0131mlar\u0131, \u00f6rnek kodlar ve g\u00f6rsel a\u00e7\u0131klamalarla ele alaca\u011f\u0131z. Haz\u0131rsan\u0131z, ba\u015flayal\u0131m!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/pygame-ile-chrome-dino-oyunu-dinoyu-kosturmak-3-bolum\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-08-29T05:30:27+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/pygame-ile-chrome-dino-oyunu-dinoyu-kosturmak-3-bolum\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/pygame-ile-chrome-dino-oyunu-dinoyu-kosturmak-3-bolum\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Pygame ile Chrome Dino Oyunu: Dino&#8217;yu Ko\u015fturmak (3. B\u00f6l\u00fcm)\",\"datePublished\":\"2025-08-29T05:30:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/pygame-ile-chrome-dino-oyunu-dinoyu-kosturmak-3-bolum\/\"},\"wordCount\":1398,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/pygame-ile-chrome-dino-oyunu-dinoyu-kosturmak-3-bolum\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/pygame-ile-chrome-dino-oyunu-dinoyu-kosturmak-3-bolum\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/pygame-ile-chrome-dino-oyunu-dinoyu-kosturmak-3-bolum\/\",\"name\":\"Pygame ile Chrome Dino Oyunu: Dino'yu Ko\u015fturmak (3. B\u00f6l\u00fcm)\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-08-29T05:30:27+00:00\",\"description\":\"S\u0131k\u0131c\u0131 bir internet ba\u011flant\u0131s\u0131 kesintisi s\u0131ras\u0131nda hepimizin kar\u015f\u0131la\u015ft\u0131\u011f\u0131 o nostaljik oyun, Chrome Dino oyunu. Bu makalede, Python'\u0131n g\u00fc\u00e7l\u00fc oyun geli\u015ftirme k\u00fct\u00fcphanesi Pygame ile bu ikonik oyunu ad\u0131m ad\u0131m nas\u0131l olu\u015fturaca\u011f\u0131n\u0131z\u0131, \u00f6zellikle de dinozorun ko\u015fma mekani\u011fini nas\u0131l kodlayaca\u011f\u0131n\u0131z\u0131 \u00f6\u011frenece\u011fiz. Pygame'in sundu\u011fu olanaklar\u0131 kullanarak, kendi dinozor oyununuzu geli\u015ftirmek i\u00e7in gerekli t\u00fcm ad\u0131mlar\u0131, \u00f6rnek kodlar ve g\u00f6rsel a\u00e7\u0131klamalarla ele alaca\u011f\u0131z. Haz\u0131rsan\u0131z, ba\u015flayal\u0131m!\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/pygame-ile-chrome-dino-oyunu-dinoyu-kosturmak-3-bolum\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/pygame-ile-chrome-dino-oyunu-dinoyu-kosturmak-3-bolum\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/pygame-ile-chrome-dino-oyunu-dinoyu-kosturmak-3-bolum\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Pygame ile Chrome Dino Oyunu: Dino&#8217;yu Ko\u015fturmak (3. B\u00f6l\u00fcm)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Pygame ile Chrome Dino Oyunu: Dino'yu Ko\u015fturmak (3. B\u00f6l\u00fcm)","description":"S\u0131k\u0131c\u0131 bir internet ba\u011flant\u0131s\u0131 kesintisi s\u0131ras\u0131nda hepimizin kar\u015f\u0131la\u015ft\u0131\u011f\u0131 o nostaljik oyun, Chrome Dino oyunu. Bu makalede, Python'\u0131n g\u00fc\u00e7l\u00fc oyun geli\u015ftirme k\u00fct\u00fcphanesi Pygame ile bu ikonik oyunu ad\u0131m ad\u0131m nas\u0131l olu\u015fturaca\u011f\u0131n\u0131z\u0131, \u00f6zellikle de dinozorun ko\u015fma mekani\u011fini nas\u0131l kodlayaca\u011f\u0131n\u0131z\u0131 \u00f6\u011frenece\u011fiz. Pygame'in sundu\u011fu olanaklar\u0131 kullanarak, kendi dinozor oyununuzu geli\u015ftirmek i\u00e7in gerekli t\u00fcm ad\u0131mlar\u0131, \u00f6rnek kodlar ve g\u00f6rsel a\u00e7\u0131klamalarla ele alaca\u011f\u0131z. Haz\u0131rsan\u0131z, ba\u015flayal\u0131m!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/pygame-ile-chrome-dino-oyunu-dinoyu-kosturmak-3-bolum\/","og_locale":"tr_TR","og_type":"article","og_title":"Pygame ile Chrome Dino Oyunu: Dino'yu Ko\u015fturmak (3. B\u00f6l\u00fcm)","og_description":"S\u0131k\u0131c\u0131 bir internet ba\u011flant\u0131s\u0131 kesintisi s\u0131ras\u0131nda hepimizin kar\u015f\u0131la\u015ft\u0131\u011f\u0131 o nostaljik oyun, Chrome Dino oyunu. Bu makalede, Python'\u0131n g\u00fc\u00e7l\u00fc oyun geli\u015ftirme k\u00fct\u00fcphanesi Pygame ile bu ikonik oyunu ad\u0131m ad\u0131m nas\u0131l olu\u015fturaca\u011f\u0131n\u0131z\u0131, \u00f6zellikle de dinozorun ko\u015fma mekani\u011fini nas\u0131l kodlayaca\u011f\u0131n\u0131z\u0131 \u00f6\u011frenece\u011fiz. Pygame'in sundu\u011fu olanaklar\u0131 kullanarak, kendi dinozor oyununuzu geli\u015ftirmek i\u00e7in gerekli t\u00fcm ad\u0131mlar\u0131, \u00f6rnek kodlar ve g\u00f6rsel a\u00e7\u0131klamalarla ele alaca\u011f\u0131z. Haz\u0131rsan\u0131z, ba\u015flayal\u0131m!","og_url":"https:\/\/fatihsoysal.com\/blog\/pygame-ile-chrome-dino-oyunu-dinoyu-kosturmak-3-bolum\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-08-29T05:30:27+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"9 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/pygame-ile-chrome-dino-oyunu-dinoyu-kosturmak-3-bolum\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/pygame-ile-chrome-dino-oyunu-dinoyu-kosturmak-3-bolum\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Pygame ile Chrome Dino Oyunu: Dino&#8217;yu Ko\u015fturmak (3. B\u00f6l\u00fcm)","datePublished":"2025-08-29T05:30:27+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/pygame-ile-chrome-dino-oyunu-dinoyu-kosturmak-3-bolum\/"},"wordCount":1398,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/pygame-ile-chrome-dino-oyunu-dinoyu-kosturmak-3-bolum\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/pygame-ile-chrome-dino-oyunu-dinoyu-kosturmak-3-bolum\/","url":"https:\/\/fatihsoysal.com\/blog\/pygame-ile-chrome-dino-oyunu-dinoyu-kosturmak-3-bolum\/","name":"Pygame ile Chrome Dino Oyunu: Dino'yu Ko\u015fturmak (3. B\u00f6l\u00fcm)","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-08-29T05:30:27+00:00","description":"S\u0131k\u0131c\u0131 bir internet ba\u011flant\u0131s\u0131 kesintisi s\u0131ras\u0131nda hepimizin kar\u015f\u0131la\u015ft\u0131\u011f\u0131 o nostaljik oyun, Chrome Dino oyunu. Bu makalede, Python'\u0131n g\u00fc\u00e7l\u00fc oyun geli\u015ftirme k\u00fct\u00fcphanesi Pygame ile bu ikonik oyunu ad\u0131m ad\u0131m nas\u0131l olu\u015fturaca\u011f\u0131n\u0131z\u0131, \u00f6zellikle de dinozorun ko\u015fma mekani\u011fini nas\u0131l kodlayaca\u011f\u0131n\u0131z\u0131 \u00f6\u011frenece\u011fiz. Pygame'in sundu\u011fu olanaklar\u0131 kullanarak, kendi dinozor oyununuzu geli\u015ftirmek i\u00e7in gerekli t\u00fcm ad\u0131mlar\u0131, \u00f6rnek kodlar ve g\u00f6rsel a\u00e7\u0131klamalarla ele alaca\u011f\u0131z. Haz\u0131rsan\u0131z, ba\u015flayal\u0131m!","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/pygame-ile-chrome-dino-oyunu-dinoyu-kosturmak-3-bolum\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/pygame-ile-chrome-dino-oyunu-dinoyu-kosturmak-3-bolum\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/pygame-ile-chrome-dino-oyunu-dinoyu-kosturmak-3-bolum\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Pygame ile Chrome Dino Oyunu: Dino&#8217;yu Ko\u015fturmak (3. B\u00f6l\u00fcm)"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/28410","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=28410"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/28410\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=28410"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=28410"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=28410"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}