Warning (from warnings module):
File “C:/Users/cano4/Documents/Pygame/First Game.py”, line 52
pygame.draw.rect(win , (255,0,0) , (x , y , width , height))
DeprecationWarning: an integer is required (got type float). Implicit conversion to integers using int is deprecated, and may be removed in a future version of Python.
Oyunuma jump özelliği ekledikten sonra bu hatayı vermeye başladı pygame yeni başladığım için pek bir şey anlamadım yardımcı olur musunuz?
Yazdığınız kodun tamamını paylaşırsanız yardımcı olmaya çalışırım. Bu arada kodunuzu mesaj yazma bölüme ekledikten sonra kodun tamamını seçerek </> işaretine basarsanız daha anlaşılır bir yapı da görünür kodunuz
import pygame
pygame.init()
win = pygame.display.set_mode((500,500))
pygame.display.set_caption("First Game")
x = 50
y = 50
uzunluk = 40
genislik = 60
vel = 5
isJump = False
jumpCount = 10
run = True
while run:
pygame.time.delay(100)
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT] and x > vel:
x -= vel
if keys[pygame.K_RIGHT] and x < 500 - uzunluk - vel:
x += vel
if not (isJump):
if keys[pygame.K_UP] and y > vel:
y -= vel
if keys[pygame.K_DOWN] and y < 500 - genislik - vel:
y += vel
if keys[pygame.K_SPACE]:
isJump = True
else:
if jumpCount >= -10:
neg = 1
if jumpCount < 0:
neg = -1
y -= (jumpCount ** 2) * 0.5 * neg
jumpCount -= 1
else:
isJump = False
jumpCount = 10
win.fill((0,0,0))
pygame.draw.rect(win , (250,0,0) , (x,y,uzunluk,genislik))
pygame.display.update()
pygame.quit()
Program hatasız çalışıyor. zıplama fonksiyonu, ekrana çizdirdiğin kırmızı kutuyu da hareket ettirip doğru konumuna geri döndürüyor.
Kod yapının tamamı şu şekilde olmalı;
import pygame
pygame.init()
size = 800,600
win = pygame.display.set_mode(size)
pygame.display.set_caption("SECOND LESSON")
x = 50
y = 530
width = 40
height = 60
vel = 5
jump = False
jump_count = 10
run = True
while run:
pygame.time.delay(50)
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
keys = pygame.key.get_pressed()
if keys[pygame.K_ESCAPE]:
run = False
if keys[pygame.K_LEFT] and x > vel:
x -= vel
if keys[pygame.K_RIGHT] and x < 800 - width - vel:
x += vel
if not(jump):
if keys[pygame.K_UP] and y > vel:
y -= vel
if keys[pygame.K_DOWN] and y < 600 - height - vel:
y += vel
if keys[pygame.K_SPACE]:
jump = True
else:
if jump_count >= -10:
neg = 1
if jump_count < 0:
neg = -1
y -= (jump_count ** 2) * 0.5 * neg
jump_count -= 1
else:
jump = False
jump_count = 10
win.fill((0,0,0))
pygame.draw.rect(win,(255,0,0),(x,y,width,height))
pygame.display.update()
pygame.quit()
Ben daha önce aynı kod yapısını oluşturmuştum. Sadece ikimizin kullandığı değişken isimlerinde farklılık vardır. Bir de ben kodun tam kalan kısmını da burada yazdım. Sen Tech With Tim 'in eğitim videosunun kalanını da izle. Kırmızı kutuyu tam konumlandırdıktan sonra benim paylaştığım kod yapısına ulaşmış olacaksın. Ayrıca programı çalıştırdığın zaman konsol ekranı arkada dönmeye devam ederken pygame 'in penceresinde gerçekleştirdiğin her fonksiyonun çalışma çıktısı tekrardan konsol ekranında gözükür. Hata diyerek nitelendirdiğimiz durumlarda programın tamamının çalışmasına engel olması gerekmektedir. Burada konsola bir uyarı yazısı çıkıyor buna rağmen programın kalan tüm fonksiyonları olması gerektiği gibi düzgün çalışıyor
tamam şimdi anladım demek istediğinizi, ama programın çalışmasına engel olmuyor bu durum. Fonksiyon çalışması gerektiği gibi çalışıyor ve sadece cmd üzerinden uyarı yazısı veriyor