Arkadaşlar oyunumu çalıştırdığım zaman düzgün çalışıyor ama (sık olmasada) nadiren
şu hatayı alıyorum:
pygame 1.9.4.post1
Hello from the pygame community. https://www.pygame.org/contribute.html
Fatal Python error: (pygame parachute) Segmentation Fault
Current thread 0x00007fbd751ee740 (most recent call first):
File "/usr/lib/python3/dist-packages/pygame/sprite.py", line 122 in __init__
File "/home/asanadam/PycharmProjects/Cysoft/PyroMan/demo_stage.py", line 420 in __init__
File "/home/asanadam/PycharmProjects/Cysoft/PyroMan/dersprogram\u0131.py", line 42 in load_map
File "/home/asanadam/PycharmProjects/Cysoft/PyroMan/dersprogram\u0131.py", line 156 in new
File "/home/asanadam/PycharmProjects/Cysoft/PyroMan/dersprogram\u0131.py", line 386 in <module>
[Finished in 44.4s with exit code -6]
[cmd: ['/usr/bin/python3', '-u', '/home/asanadam/PycharmProjects/Cysoft/PyroMan/dersprogramı.py']]
[dir: /home/asanadam/PycharmProjects/Cysoft/PyroMan]
[path: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin]
sebebi nedir sizce bu hatanın durup dururken oldu bu ve tekrarladı heralde bir şeye dokunmuşumdur dedim takmadım ama alakası yok ve nadiren oluyor anlamadığım kısımlardan biri de bu
birde üstüne şöyle bir satır basıyor
internette aratırdım ama bir sonuç bulamadım neden kaynaklandığınıda bilmiyorum bazıları pygame ile tkinter i birlikte kullandığı için böyle oluyormuş ama ben tkinter kullanmıyordum ayrıca win10 da neden hiç böyle hatalar vermedi ? Neden böyle oluyor?
Sorun 5. python kaynak kodu dosyasinin 123. satirinda.
Ne dememizi bekliyorsun ki?
Kutuphanede bir bug var veya “yapmayin” dedigi bir seyi yapmissin. Cagirdigin butun pygame fonksiyonlarini dokumentasyonun soyledigi sekilde cagirdigindan emin ol. Hatta sirf fonksiyonlar degil, butun siniflarin/modullerin/fasilitelerin ozetlerini okuyup resmi kullanim sekillerine bak, seninkinin farkli oldugu yerleri degistir.
sorunu bende bilmiyorum aniden olmaya başladı asil size anlayamadığım bir hatayı nasıl anlatabilirim ki daha önce çalışıyordu hemde sorunsuz linux ile alakalı olduğunu düşündüm sürücüleri güncelledim oldu sanırım şuan hata çıkmıyor
Ben konuyu açarken biri daha önce bu sorunla karşılaşmıştır diye açtım nasıl sorun çözülür öğrenmek için değil sonuçta kodda hata yok her sorunda kodda hata olmasına gerek yok
Evet ama konuyu herkese acik bir foruma actin, ve problemin bitince kapanmadi.
Bunun, forumun senin problemini cozmenin disinda amaclari oldugunu gostermesi lazim. Bunlardan bir tanesi de kimi yazilim gelistirme metodolojilerini ogrenmek isteyen insanlari bir araya getirip onayak saglamasi. Ben de bu taraftan yaklasiyorum basliga, o yuzden senin hangi amacla actigin beni ilgilendirmiyor.
Bu cok dogru mesela, fakat yazilim gelistiren birinin bunun tam tersini varsaymasi lazim. Hatanin kutuphanede oldugunu kanitlayip cozumunu bulma yolu, hatanin kullanicida oldugunu varsayarak basliyor.
Gunumuz teknoloji dunyasindaki genel yaklasim/anlayis son 10-20 senedir bu sekilde degil, gunumuzle kontrast yarattigi icin deyineyim dedim.
Son derece yanlis.
Ama niye bir alternatif ariyoruz ki? Bence yaptiginda bir sikinti yok, son derece dogru.
Tamam, iste o zaman sorunun kutuphanede oldugundan emin oluyoruz ve bonus olarak cozmenin yontemini bulmus oluyoruz. Birazcik daha ugrasarak bunun bir daha kimsenin basina gelmemesini saglayabiliyoruz (ozgur yazilim projelerinde) veya proje sahibine sorunu hizlica cozmesi icin gereken bilgiyi verebiliyoruz.
Kodun o kismini (hatta tamamini, hatta tamaminin probleme indirgenmis halini) bastan paylasman gerekiyordu zaten ama onu burada konusmaya gerek yok, daha cok karsilasacaksin.
Buradaki mantik zincirini kuramadim.
Forumun amaclarindan biri senin problemini cozmek.
Forumun baska amaclari da var.
Biri senin probleminin aynisiyla karsilasti. Ne olacak?
Senin probleminin cozumu onun da isine yarayacak → her sekilde pozitif sonuc
Senin probleminin cozumu ona yaramadi → onun icin kotu sonuc, senin pozitif sonucunu degistirmiyor
Sorunun tek senin sorunun oldugunu dusunmuyorum. “Nereden biliyorum”??!
def load_map(self):
x = y = 0
for row in level:
for col in row:
if col == "P":
p = Platform(x, y, "a")
Platforms.add(p)
all_sprites.add(p)
elif col == "c":
coin = Coin(x+5, y)
Coins.add(coin)
all_sprites.add(coin)
elif col == "S":
SPK = Spike(x, y)
spikes.add(SPK)
all_sprites.add(SPK)
elif col == "G":
Plt = Platform(x, y, "b")
Platforms.add(Plt)
all_sprites.add(Plt)
elif col == "W":
Wall = Platform(x, y, "c")
Platforms.add(Wall)
all_sprites.add(Wall)
elif col == "s":
# daha geliştireceğiz o yüzden bu haline takılmayın
self.store = Store(x, y - 40, self.screen)
all_sprites.add(self.store)
elif col == "E":
enemy = Enemy(x, y-30, self.screen)
enemy.walls = Platforms
Enemys.add(enemy)
all_sprites.add(enemy)
elif col == "X":
self.Exit = ExitPortal(x,y-60)
all_sprites.add(self.Exit)
x += 25
y += 25
x = 0
tileWidth = len(level[0])
tileHeight = len(level)
mapWidth = tileWidth*25
mapHeight = tileHeight*25
self.camera = Camera(mapWidth, mapHeight)
bir sıkıntı göremiyorum
oradaki camera kodu:
class Camera:
def __init__(self, mapWidth, mapHeight):
self.camera = pg.Rect(0, 0, mapWidth, mapHeight)
self.width = mapWidth
self.height = mapHeight
def apply(self, sprite):
return sprite.rect.move(self.camera.topleft)
def apply_rect(self, rect):
return rect.move(self.camera.topleft)# For The Enemy Health
def update(self, target):
x = -target.rect.centerx + int(WIDTH/2)
y = -target.rect.centery + int(HEIGHT//1.35)
# limit scrolling to map size
x = min(0, x) # left
y = min(0, y) # top
x = max(-(self.width - WIDTH), x) # right
y = max(-(self.height - HEIGHT), y) # bottom
self.camera = pg.Rect(x, y, self.width, self.height)
gene bir sıkıntı göremiyorum
hatta şöyle bir deneme yaptım acaba pygamenin modülleri yüklerken mi sıkıntı oluyor diye
Dedigim gibi, problem koddaysa pygame fasilitelerinin kullaniminda. Butun kullanimlari incelemek lazim. (Yine dedigim gibi, kodun tamami veya hatayi cikartacak minimum koda indirgenmis halini incelemek lazim.)