DeprecationWarning hatası

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()
1 Beğeni

Dostum yazdığın kod bende çalıştı. Aldığın hatanın ekran fotoğrafını benimle paylaşır mısın?

Bir de dosya adını first_game.py olarak değiştirip dener misin?

discorrdaan atıyom hatayı zıplayınca hata veriyor

1 Beğeni

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

Uyarının sebebi bunlardan en az birinin float olması. int vermeniz gerekiyor.

hepsini int vermiş zaten :thinking: :thinking:

Adı üstünde, değişken:

1 Beğeni

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

Bu bir hata değil zaten, uyarı (warning). Uyarı veriyor çünkü ileride floatı otomatik inte çevirmek yerine hata yükseltme olasılıkları var.

2 Beğeni