كل ما يخص الدالة (onscreenclick)

مبدئيا، هذه الداله فى المستوى الثانى فى turtle من بايثون فإذا لم تصل اليها بعد لا داعى لتشتت نفسك

1. الوظيفه

وظيفة الداله onscreenclick هى إدخال اللمس او الماوس الى اللعبه وليس الكيبورد فقت

2. مكان الإستدعاء

تستدعا الداله onscreenclick من كلاس Screen يعنى لو كتبت () window = Screen واردت استخدام onscreenclick هتكتب() window.onscreenclick

3. الـ arguments

الداله onscreenclick تأخذ من 1 الى 3 arguments (غير self)
الاولى هى اسم الفانكشن التى يتم استدعائها ويجب على الفانكشن ان تأخذ 2 arguments (إحداثيات الاكس ، إحداثيات الواى)، مثال :

from turtle import Turtle ,Screen
 
window = Screen ()
sam = Turtle ()
sam.penup ()
sam.hideturtle ()
sam.goto (0,200)
sam.write ('green',align='center',font=('Ariel',20,'normal'))
sam.goto (0,-200)
sam.write ('red',align='center',font=('Ariel',20,'normal'))

def check (x,y): # فانكشن تاخذ إحداثيّات الإكس و الواي
  if y > 0: # نرى اذا ضغط في نصف الشاشه العلوي
    window.bgcolor ('green')
  elif y < 0: # والا نري اذا ضغط في نصف الشاشه السفلي
    window.bgcolor ('red')

window.onscreenclick (check)

while True :
# كود اللعب
  window.update ()

window.exitonclick ()

وفى المثال السابق عندما يتم الضغط على الشاشه تقوم الداله onscreenclick باستدعاء الفانكشن check (إحداثيات الاكس التى تم الضغط عليها ، إحداثيات الواى التى تم الضغط عليها) فى متغيرات .

والثانيه تأخذ 1 او 2 (زر الماوس الأيمن او زر الماوس الأيسر) حيث 1 = زر الماوس الأيمن و 2 = زر الماوس الأيسر
ولاكن إذا لم تكتب سوى الفانكشن الاولى فقط فسوف يكون الزر هو 1 (زر الماوس الأيمن) كما ان زر الماوس الأيمن هو الذى يستخدم فى الهاتف بمعنى انك لو ضغط على الشاشه من الهاتف كأنك ضغط على زر الماوس الأيمن ، مثال آخر :

from turtle import Turtle ,Screen 
from random import choice 
window = Screen ()
window.setup (600,600)
right_colors = ('yellow','red','blue','light green')
left_colors = ('green','orange','black','silver')

def screen_coloring (colors,x,y):
  
  if x > 0 and y > 0:
    window.bgcolor (colors[0])
  elif x > 0 and y < 0:
    window.bgcolor (colors[1])
  elif x < 0 and y > 0:
    window.bgcolor (colors[2])
  elif x < 0 and y < 0:
    window.bgcolor (colors[3])

def right (x,y):
  screen_coloring (right_colors,x,y)
def left (x,y):
  screen_coloring (left_colors,x,y)

window.onscreenclick (right , btn = 1)
window.onscreenclick (left , btn = 2)

window.mainloop ()

وفى المثال السابق عندما تضغط على الشاشه بزر الماوس الأيمن يكون اللون مختلف عن ما اذا ضغط بزر الماوس الأيسر (المثال ده مش متاكد منه لاني شغال من الهاتف فما عندى زر الماوس الأيسر)

الثالثه و الاخيره لا اعلم منها الا انها تاخذ قيمه True او False هههههههه :joy:

4. الختام

فى النهايه انا عملت مشاريع كتير فيها onscreenclick ولم استخدم إلا الاولى فقط
من مشاريعى : لعبه بينج بونج ، لعبه الطائر ، آله حاسبه ، لعبه x,o

ولو اى حد عنده اى سؤال عن onscreenclick يقوله :heart:

5 إعجابات

جميل
جزاك الله خيرا :heart_eyes::heart:

3 إعجابات

وإياكم اخى الكريم @Haytham_Amer :heart::rose:

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

ما شاء الله بارك الله فيك اخي الكريم :heart:

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

وفـيـكـم بـارك الله :heart:

إعجابَين (2)