Object miraslı class

arkadaşlar pygame ile oyunum için döküman ararken çoğu kişinin bazı classlarda
şunu kullandığını gördüm:

class sinif(Object):

neden object sınıfını miras alıyorlar amaç nedir

Baktığınız dokümanlar Python2.x içinmiş büyük ihtimalle. Python3’de her sınıf object sınıfını miras alır, biz yazmasak bile:

### python3.x
>>> class sinif: pass
>>> class sinif2(object): pass
>>> sinif.__bases__
(<class 'object'>,)
>>> sinif2.__bases__
(<class 'object'>,)

Gördüğünğz gibi object sınıfını miras aldığımızı belirtsek de belirtmesek de zaten almış oluyoruz. Ancak python2.x de böyle olmadığı için kendimiz belirtiyorduk.

Bu konuya burada da değinilmiş.

peki bir şey daha sorsam daha demin geziniyordum ve şu komutu gördüm

self.screen.surface.blit()

bu ne işe yarıyor

Burada screen ve surface’in ne oluğunu bilmeden bunu nasıl cevaplayabilirim ki?

pygame komutu self.screen ise ekran

sorum bu konu ile alakasız ama hazır aklımdayken sormak istedim

Ben pygame.Surface nesnesinin blit metodunu parametresiz çağırınca hata alıyorum:

>>> import pygame
>>> d = pygame.display.set_mode((200,200))
>>> d.blit()
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    d.blit()
TypeError: function missing required argument 'source' (pos 1)
>>> 

İncelediğiniz kaynaklar biraz eski sanırım.

gördüğüm koddaki argumanı hatırlamıyorum sadece bu fonksiyonun nereye çizdiğini
bilmek istedim

Anladım. Bu fonksiyon surface nesnemizin tamamını kendisine verilen RGB renk ile boyuyor. Bu metodu zaten kendi oyunlarınızda kullanmıyor musunuz?

hayır daha önce bunu:screen.surface.blit()kullanmadım nerede kullana bilirdim ki ?
örnek gösterirmisiniz.

Kusura bakmayın. Metodları karıştırmışım. Bu dediğim işi yapan fill metodu. blit metodu ise bir surface’in üzerine belli bir koordinata başka bir surface’i çizmemizi sağlıyor. Siz ekranı içeren surface nesnesine kendi surface’lerinizi nasıl yansıtıyorsunuz? Büyük ihtimalle bu metodu kullanmışsınızdır.

Buradaki kodunuzda kullanmışsınız zaten:

https://www.pygame.org/docs/ref/surface.html#pygame.Surface.blit

Aciklamanin sonunda da “orneklerde ara” linki var.

benim istediğim blit metodu değil surface.blit metodu

Bu metod zaten pygame.Surface sınıfına ait.