مشكلة فى استخدام tracer(0) فى لعبة ال Ping Pong

السلام عليكم ورحمة الله وبركاته
الحمد لله
وصلاتا وسلاما على رسول الله

عندى مشكلة لما باجى استخدم method
tracer(0)
فى كود لعبة ping pong
لما باجى اشغل كود اللعبة ما بتشتغلش و بتدينى not responding :

الكود شغال كويس جدا بدون الmethod ديه

جربت التالى :

  • قفلت ال VSC و عملت restart
  • مسحت python و VSC من الجهاز ورجعت سطبتهم
  • عملت tracer(1) بدل tracer(0) واشتغل كويس بس الكرة بطيئة جدا و سرعتها مبتزدش مع ضربة المضارب
  • بحثت عالمشكلة ع الانترنت
  • لما شغلت لعبة snake واللى فيها نفس ال method … شاشة اللعبة اشتغلت بس تأثير الmethod فى اللعبة او فى الكود مش ظاهر (بمعنى ان اللعبة بتشتغل وكأن ال method مش موجوده فيها اصلا)

فلو حد عنده حلول يبقى جزاكم الله خيرا

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

عليكم السلام ورحمة الله وبركاته
انا صارتلي نفس المشكلة والسبب والله اعلم انه البرنامج سرع جدا لدرجة انه الجهاز ما يلحق يستوعب فيعلق
فالحل انك بعد ما تسوي screen.update تحط time.sleep(0.1) عشان ما يعلق وجربها وان شاء الله تزبط وما يعلق اهم شي حط time.sleep

إعجابَين (2)

بعد كل هذا الباقي انك تسأل شات جي بي تي بما انك بحثت وحاول فاكيد وباذن الله شات جي بي تي معاه الحل

3 إعجابات

طب ارسل الكود حتى يبان المشلكة طبعا اذا حاولت تسوي اقتراح الاخ @Ninja وما زبط

إعجابَين (2)

وعليكم السلام ورحمة الله وبركاته،
بالنسبة لمشكلة الـ tracer(0) التي تسبب أن اللعبة لا تستجيب، فمن الممكن أن السبب يكون له علاقة بإدارة تحديثات الشاشة أو طريقة استخدام الـ tracer() في الكود. عند استخدام tracer(0)، فإنك تقوم بتعطيل التحديث التلقائي للشاشة، ولذلك يجب استخدام update() بانتظام لتحديث الشاشة يدويًا.

إذا لم تقم باستدعاء update() بشكل دوري، فإن الكود سيتوقف عن تحديث الشاشة ويؤدي إلى حالة “عدم الاستجابة”. جرب إضافة update() في الأماكن المناسبة مثل داخل اللوب الرئيسي الخاص باللعبة، كما يلي:

# Example of using update with tracer(0)
import turtle

# Setup screen and other settings
wn = turtle.Screen()
wn.title("Ping Pong")
wn.bgcolor("black")
wn.setup(width=800, height=600)

# Disable auto updates
wn.tracer(0)

# Define your game elements here (ball, paddles, etc.)
# Example:
# ball = turtle.Turtle()

while True:
    # Your game loop
    # Move the ball, check for collisions, etc.
    
    # Manually update the screen after each loop iteration
    wn.update()

جرب الكود بالطريقة دي وشوف هل المشكلة هتتحل ولا لأ.

حل آخر ممكن:
ممكن تكون المشكلة في كمية العناصر اللي بتحاول تحديثها بسرعة في اللعبة. لو عندك حاجة زي for loop بتحرك الكرة بشكل مكثف، خلي التأكد يتم بحذر ومع كل خطوة تقوم بتحديث الشاشة يدويًا زي ما قلت فوق.

جرب كده وقولي إيه اللي هيحصل معاك!

3 إعجابات

جزاكم الله خيرا جميعا على التفاعل :heart::heart:
تخيلوا ان العيب فى انى نسيت الاقواس هنا :sweat_smile::sweat_smile::sweat_smile: :

شات جى بى تى خلص الموضوع

قدر الله وما شاء فعل
الواحد مبيتعلمش ببلاش

6 إعجابات

ههههههههههههههههههههههههههههههههه حصل خير يرجل

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