משחק אינו כלום בלי קלט, ועם התמיכה של Pygame הן בכניסת עכבר והן בקלט מגע, אתה יכול להבטיח שהמשחק שלך נגיש.

בעידן זה, מכשירים עם מסך מגע נמצאים בכל מקום. זה לא מפתיע שמפתחי משחקים משתמשים יותר ויותר בקלט מגע במשחקים שלהם, ומסגרות הופכות את זה לקל וקל יותר.

PyGame מקל על יצירת משחקים ויישומים שיכולים לנצל את כניסות המגע.

תמיכת המגע של PyGame

ל- PyGame תמיכה מובנית לעבודה עם כניסות מגע. זה כולל תמיכה בכניסות מגע עכבר ואצבע.

כדי לזהות עכבר, אתה יכול להשתמש ב- pygame. כפתור עכבר ו pygame. כפתור העכבר אירועים. לדוגמה:

ל מִקרֶה ב pygame.event.get():
אם event.type == pygame. כפתור עכבר:
הדפס("לחצן העכבר לחוץ")

כדי לזהות כניסות למגע אצבע, אתה יכול להשתמש ב pygame. אצבע למטה ו pygame. FINGERUP אירועים. לדוגמה:

ל מִקרֶה ב pygame.event.get():
אם event.type == pygame. אצבע למטה:
הדפס("אצבע נגעה במסך")

יצירת משחק פשוט

אתה יכול למצוא את כל הקוד ב זה GitHub Repo.

התחל ביצירת משחק פשוט. משחק זה יהיה מורכב מדמות שחקן שתוכל להזיז על המסך באמצעות כניסות מגע. כדי לעשות זאת, תצטרך ליצור לולאת משחק ודמות שחקן.

לפני שתתחיל, ודא שיש לך pip מותקן במכשיר שלך, ולאחר מכן השתמש בפקודה הבאה כדי להתקין את PyGame מודול:

instagram viewer
pip להתקין pygame

כעת, ייבא את מודול PyGame לקוד המשחק שלך:

יְבוּא pygame
pygame.init()

לאחר מכן, צור את חלון המשחק ואובייקט משחק:

# הגדר את התצוגה
גודל = (400, 400)
מסך = pygame.display.set_mode (גודל)

# צור אובייקט שחקן
שחקן = pygame. משטח((50, 50))
player.fill((255, 0, 0))

# הגדר את המיקום ההתחלתי של השחקן
player_pos = [175, 175]

לבסוף, צור את לולאת המשחק:

# לולאת המשחק
פועל = נָכוֹן

בזמן רץ:
# בדוק אם יש אירועים
ל מִקרֶה ב pygame.event.get():
אם event.type == pygame. לְהַפְסִיק:
פועל = שֶׁקֶר

# עדכן את עמדת השחקן
שחקן_פוזה[0] += 5
שחקן_פוזה[1] += 5

# צייר את השחקן
screen.blit (player, player_pos)

# עדכן את התצוגה
pygame.display.update()

שימו לב שהקוד שלמעלה יוצר רק משחק פשוט שבו דמות השחקן נעה על המסך. כדי להפוך את המשחק למעניין יותר, אתה יכול להוסיף פיזיקה והתנגשויות ליצור מכשולים עבור השחקן להתגבר עליו.

כניסות מגע עכבר לתנועת שחקן

עכשיו, כשיש לך משחק עם דמות שחקן, אתה יכול להתחיל להוסיף כניסות מגע. כדי לעשות זאת, תצטרך להוסיף מטפל באירועים עבור כניסות העכבר. תוסיף את ה pygame. כפתור עכבר ו pygame. כפתור העכבר אירועים ללולאת המשחק.

צור מטפל באירועים עבור כניסות העכבר. כאשר שחקן לוחץ על לחצן העכבר, עדכן את מיקום הדמות למיקום העכבר הנוכחי. התוכנית תתעלם משחרור כפתור העכבר, מכיוון שהיא לא צריכה לנקוט כל פעולה במקרה זה.

# לולאת המשחק
פועל = נָכוֹן

בזמן רץ:
# בדוק אם יש אירועים
ל מִקרֶה ב pygame.event.get():
אם event.type == pygame. לְהַפְסִיק:
פועל = שֶׁקֶר
# בדוק אם יש כניסות עכבר
אליף event.type == pygame. כפתור עכבר:
mouse_x, mouse_y = event.pos
שחקן_פוזה[0] = mouse_x
שחקן_פוזה[1] = mouse_y
אליף event.type == pygame. כפתור העכבר:
לַעֲבוֹר

screen.fill((0, 0, 0))

# צייר את השחקן
screen.blit (player, player_pos)

# עדכן את התצוגה
pygame.display.update()

אתה יכול גם להוסיף היגיון נוסף למטפל באירועים כדי לגרום לשחקן לזוז בתגובה לקלט העכבר.

כניסות מגע אצבע לתנועת שחקן

בנוסף לכניסות עכבר, ניתן להוסיף גם כניסות למגע אצבע. כדי לעשות זאת, תצטרך להוסיף מטפל באירועים עבור כניסות מגע אצבע.

תוסיף את ה pygame. אצבע למטה ו pygame. FINGERUP אירועים ללולאת המשחק:

# לולאת המשחק
פועל = נָכוֹן

בזמן רץ:
# בדוק אם יש אירועים
ל מִקרֶה ב pygame.event.get():
אם event.type == pygame. לְהַפְסִיק:
פועל = שֶׁקֶר
# בדוק אם יש כניסות עכבר
אליף event.type == pygame. כפתור עכבר:
mouse_x, mouse_y = event.pos
שחקן_פוזה[0] = mouse_x
שחקן_פוזה[1] = mouse_y
אליף event.type == pygame. כפתור העכבר:
לַעֲבוֹר
# בדוק אם יש כניסות אצבע
אליף event.type == pygame. אצבע למטה:
finger_x, finger_y = event.pos
שחקן_פוזה[0] = finger_x
שחקן_פוזה[1] = finger_y
אליף event.type == pygame. FINGERUP:
לַעֲבוֹר

screen.fill((0, 0, 0))

# צייר את השחקן
screen.blit (player, player_pos)

# עדכן את התצוגה
pygame.display.update()

שימו לב עד כמה זה דומה למטפל באירועי קלט בעכבר. מטפל באירועים זה מעדכן את מיקום הדמות כאשר השחקן לוחץ עם האצבע שלו על המסך. כשהם משחררים את האצבע, שום דבר לא קורה. זה מאפשר לך ליצור משחק שאתה יכול לשלוט בו באמצעות כניסות מגע של עכבר ואצבע. זכור שניתן להשתמש גם באירועים אחרים כגון pygame. תנועת אצבעות להגיב לתנועת אצבעות.

תכונות המגע הנוספות של Pygame

עם תכונות המגע הבסיסיות במקום, אתה יכול להתחיל להוסיף תכונות מתקדמות יותר. ל-PyGame יש כמה תכונות מובנות שיכולות לעזור לך להוסיף עוד תכונות מגע למשחק שלך.

התכונה הראשונה היא pygame.mouse.set_visible() פוּנקצִיָה. פונקציה זו מאפשרת לך להסתיר את סמן העכבר. זה יכול להיות שימושי אם אתה רוצה ליצור משחק שמשתמש רק בכניסות מגע ולא בעכבר.

הנה דוגמה כיצד להשתמש ב- set_visible() פוּנקצִיָה:

pygame.mouse.set_visible(שֶׁקֶר)

ה pygame.mouse.set_pos() הפונקציה מגדירה את סמן העכבר למיקום מסוים על המסך. זה שימושי אם ברצונך להעביר את העכבר למיקום מסוים מבלי להשתמש בכניסות העכבר.

להלן דוגמה כיצד להשתמש ב- set_pos() פוּנקצִיָה:

pygame.mouse.set_pos(200, 200)

אתה יכול להשתמש ב pygame.mouse.get_rel() פונקציה כדי לקבל את התנועה היחסית של העכבר. אתה יכול להשתמש בזה כדי לזהות כמה רחוק העכבר עבר מאז אירוע העכבר האחרון.

כך תוכל להשתמש ב- get_rel() פוּנקצִיָה:

dx, dy = pygame.mouse.get_rel()

לבסוף, אתה יכול להשתמש ב pygame.mouse.get_pressed() פונקציה כדי לבדוק אם הנגן לוחץ על כפתור עכבר כלשהו. זה יכול להיות שימושי בעת יצירת משחקים עם בקרות עכבר/מגע.

להלן דוגמה כיצד להשתמש ב- get_pressed() פוּנקצִיָה:

mouse_buttons = pygame.mouse.get_pressed()

PyGame מספק גם א גלגל עכבר סוג אירוע שבו אתה יכול להשתמש כדי לזהות גלילות גלגל עכבר. הוא תומך במגילות אנכיות ואופקיות כאחד.

הנה דוגמה:

ל מִקרֶה ב pygame.event.get():
אם event.type == pygame. גלגל עכבר:
אם event.y > 0:
הדפס("גלגל העכבר גולל למעלה")
אליף event.y < 0:
הדפס("גלגל העכבר גולל למטה")

צור משחקים אינטראקטיביים עם כניסות מגע

עם כניסות המגע במקום, כעת תוכל ליצור משחקים אינטראקטיביים. לדוגמה, אתה יכול ליצור משחק שבו השחקן יכול לנוע על המסך באמצעות כניסות מגע. אתה יכול גם ליצור משחקים מבוססי מחוות, שבהם השחקן יכול לבצע מחוות שונות כדי להפעיל פעולות במשחק.

האפשרויות הן אינסופיות בכל הנוגע ליצירת משחקים עם כניסות מגע. בעזרת PyGame תוכלו ליצור משחקים שהם גם מהנים וגם אינטראקטיביים. אז צאו לשם והתחילו ליצור!