مشكلة في انشاء لعبة pingpong

لا أظن أنها حصلت عند الجميع
الخطوات مطابقة للفيديو بحذافيرها
اللعبة تعمل لكن ال terminal يظهر خطأ في السطر الذي أطلب فيه من الكرة التحرك (اضافة x_move )

self.goto(Vec2D(x,y))

قمت بحلها عن طريق try/except

لكن ليس هذا الحل الذي أريد

4 إعجابات

ارسل الكود رجاءا حتى يتم معرفة الخطا

3 إعجابات

ارسل الكود الله يسعدك عشان نعرف المشكلة وين بالضبط؟

3 إعجابات

ابعت الخطا والكود وبإذن الله تتحل

3 إعجابات
from turtle import Screen

from paddle import Paddle
from ball import Ball
from scoreboard import Scoreboard
import time

try:

    # create_screen
    screen=Screen()
    screen.setup(800,600)
    screen.bgcolor("black")
    screen.title("pingpong")
    screen.tracer(0)
    # create_variables
    left_paddle=Paddle((-360,0))
    right_paddle=Paddle((360,0))
    ball=Ball()
    default_sleep=0.1
    left_scoreboard=Scoreboard((-100,250))
    right_scoreboard=Scoreboard((100,250))
    # keys_instructions
    screen.listen()
    screen.onkey(left_paddle.up, "w")
    screen.onkey(left_paddle.down, "s")
    screen.onkey(right_paddle.up, "Up")
    screen.onkey(right_paddle.down, "Down")
    # starting_game
    game_on=True
    while game_on:
        screen.update()
        time.sleep(default_sleep)
        # moving_ball
        ball.goto(ball.xcor()+ball.x_move, ball.ycor()+ball.y_move)
        # with_roof_and_floor
        if ball.ycor()>=280 or ball.ycor()<=-280:
            ball.y_move *= -1
        # with_paddles 
        if (ball.xcor()>=330 and ball.distance(right_paddle)<=50)or(ball.xcor()<=-330 and ball.distance(left_paddle)<=50):
            ball.x_move *= -1
            default_sleep *= 0.9
        # with_right_wall 
        if ball.xcor()>400:
            left_scoreboard.increase()
            ball.goto(0,0)
            ball.x_move *= -1
            default_sleep=0.1
        # wuth_left_wall 
        if ball.xcor()<-400:
            right_scoreboard.increase()
            ball.goto(0,0)
            ball.x_move *= -1
            default_sleep=0.1

    screen.exitonclick()        
except:
    pass            

إعجابَين (2)

ارسل صورة باقي الملفات

إعجابَين (2)

ارسل اكواد الملفات الثانية

إعجابَين (2)



إعجابَين (2)

تقدر تصور الخطأ عشان نعرف وش يقول

3 إعجابات

إعجاب واحد (1)

هذه لما تحذف اللعبة بشكل مفاجئ اثناء عمل اللعبة اليس كذلك

اعتقد انك نسيت وضع ( ) بعد
() ball. x_move
() ball. y_move

إعجاب واحد (1)

أهلا أخي
هذا الخطأ يظهر بعد أن يغلق الملف التشغيلي exe من تلقاء نفسه

من الخطأ ان نضع أقواس بعد هذه المتغيرات فهي ليست functions

هو الواضح انو اصلا اللوب ما بتوقف ابدا فعلى طول راح يبقى الكود شغال يعني هي اللعبة ما في لها نهاية بخلاف لعبة الثعبان لما كنت تخسر خلص تتوقف كل الاوامر وبعدين تغلق اللعبة ولكن هنا حسب اللي انا شفته انو هي اللعبة ما فيها نهاية

فاقترح عليك مثلا انو ملا تصير عدد الخسارات مثلا 10 خلص تخلص اللعبة بفوز الاخر

إعجاب واحد (1)