İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Son dakika Yazarlar
  1. Ana sayfa
  2. Topluluk
  3. Programlama
  4. Script Programlama (Python, Ruby, Perl, Bash/Shell
Script Programlama (Python, Ruby, Perl, Bash/Shell

Python Yılan oyunu problemi

Lapassion16.01.20194 cevap2.493 görüntüleme
2018'den beri11 mesaj
#1
Yılan oyunu yazmaya çalıştım.Fakat kıvrılma hareketini nasıl yazacağımla ilgili bir fikrim yok.Yılanın başını çevirdiğimde bütün kuyruk da başıyla beraber dönüyor.Şimdilik yılanı tek karede bırakmak zorunda kalıyorum.Bu sorunu çözmeme yardım edebilecek birisi var mı?Bu arada Class kullanmıyorum.Yeni başladığım için bana zor geliyor.Mümkünse Class kullanmadan yardımcı olunuz.Aslında amacım yılanın her karesinin kendinden önceki karenin koordinatlarını tekrar etmesi.Böylece kıvrım yapabilirim ama bunu nasıl kodlayabilirim bilmiyorum.
Koad aşağıdadır.
global değişkenler:
pygame.init()

pencerem=pygame.display.set_mode((800,600))

WHITE=(255,255,255)

BLACK=(0,0,0)

RED=(255,0,0)

GREEN=(0,255,0)

knmx=60

knmy=60

sagx=20

asagiy=20

yemx=100

yemy=100

haritasol=False

haritasag=False

haritayuk=False

haritaasg=False

yembyk=10

saga=True

sola=False

asg=False

yuk=False

hiz=10

tailsize=2

uyku=0.05

konum=[knmx,knmy]

gercekhiz=0.02 #ters orantı
Yön fonksiyonum:
def yon(x):

if int(x)==273 and (saga or sola)==True and (yuk and asg)==False:

a=True

b=False

c=False

d=False

return a,b,c,d

elif int(x)==274 and (saga or sola)==True and (yuk and asg)==False:

a=False

b=False

c=False

d=True

return a,b,c,d

elif int(x)==275 and (saga and sola)==False and (yuk or asg)==True:

a=False

b=True

c=False

d=False

return a,b,c,d

elif int(x)==276 and (saga and sola)==False and (yuk or asg)==True:

a=False

b=False

c=True

d=False

return a,b,c,d

else:

return yuk,saga,sola,asg
Hareket fonksiyonum:
def hareket():

global n,m
if yuk==True:

for i in range(1):

n=knmy-hiz

m=knmx

sleep(uyku)

return n,m

if asg==True:

for i in range(1):

n=knmy+hiz

m=knmx

sleep(uyku)

return n,m

if sola==True:

for i in range(1):

m=knmx-hiz

n=knmy

sleep(uyku)

return n,m

if saga==True:

for i in range(1):

m=knmx+hiz

n=knmy

sleep(uyku)

return n,m
Oyun döngüm:
while True:

pencerem.fill(BLACK)

for i in range(1):

bas=pygame.draw.rect(pencerem, RED, (knmx,knmy,sagx,asagiy))

konum.append=[knmx,knmy]







for olay in pygame.event.get():

if olay.type==QUIT:

pygame.quit()

elif olay.type==KEYDOWN:

kolay=olay.key

yuk,saga,sola,asg=yon(kolay)

sleep(0.1)

knmy,knmx=hareket()

if knmx==800 and saga:

knmx=0

elif knmx==0 and sola:

knmx=800

elif knmy==0 and yuk:

knmy=600

elif knmy==600 and asg:

knmy=0

sleep(gercekhiz)



pygame.display.flip()
👍 1
Cevaplar
2017'den beri353 mesaj
#2
Merhaba, kusura bakma sorunu cevaplayacak kadar bilgili değilim ancak sana bir sorum olacak: "Python'da profesyonel bilgin var mı yoksa temel bilgilere dayanarak mı yaptın oyunu? Ben anlayamadım çünkü :)"
👍 1
2021'den beri2.233 mesaj
#3
Merhaba, kusura bakma sorunu cevaplayacak kadar bilgili değilim ancak sana bir sorum olacak: "Python'da profesyonel bilgin var mı yoksa temel bilgilere dayanarak mı yaptın oyunu? Ben anlayamadım çünkü :)"
Orta düzeyde bi bilgin olması seni sürükler bazı kütüphaneler vardır bu kütüphanelerin özel kodları vardır belki pygame bilmediğin için sana karmaşık gelebilir
👍 1
2021'den beri15 mesaj
#4
Orta düzeyde bi bilgin olması seni sürükler bazı kütüphaneler vardır bu kütüphanelerin özel kodları vardır belki pygame bilmediğin için sana karmaşık gelebilir
bende bilmiyorum
2021'den beri2.233 mesaj
#5
Mustr0y dedi: ↑
bende bilmiyorum
ne bilmiyorsun anlıyamadım :) ben orta düzeyde biliyorum ve şuan kendi sesli asistanımı yapıyorum xD

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.