arkadaşlar pythonda koşullu atamalar yapılabiliyormuş ama pygame ’ de bir sprite classının içinde şu kodu çalıştıramıyorum:
self.image = pg.image.load("FireBallLeft.png").convert_alpha() if self.facing == -1
hatası =
File "C:\Users\tolga\PycharmProjects\kitap-101\demo_stage.py", line 418
self.image = pg.image.load("FireBallLeft.png").convert_alpha() if self.facing == -1
^
SyntaxError: invalid syntax
Çünkü kullanım şekliniz eksik. Eğer self.facing == -1
şartı sağlanmaz ise self.image
ne olacak sizce? Bunu da belirtmemiz lazım. Eğer şart sağlanmaz ise self.image
niteliğinin hiç tanımlanmamasını istiyorsanız normal bir if bloğu kullanmalısınız (self.image niteliğinin zaten tanımlı olmadığını varsayarak bunu söyledim). Eğer bu nitelik tanımlı ise ve şart sağlanmadığında hiç değişmemesini istiyorsanız bunu kullanabilirsiniz:
self.image = pg.image.load("FireBallLeft.png") if self.facing == -1 else self.image
Ama bunun yerine normal bir if
bloğu kullanmanız daha hoş olacaktır.
Buradaki else
kısmı eklenmek zorunda, yukarıda da sebebini belirttim. Syntax hatasını da bu yüzden alıyorsunuz. Eğer if
deki şart sağlanmaz ise else
den sonraki değer değişkene atanır.
1 Beğeni