
خطوات برمجة لعبة سباق سيارات باستخدام بايثون ومكتبة Pygame
تعد مكتبة Pygame من أقوى المكتبات في بايثون لإنشاء الألعاب ثنائية الأبعاد ،
تعتبر ألعاب سباق السيارات من أكثر أنواع الألعاب شعبية وإثارة حيث تجذب
اللاعبين بتحدياتها المليئة بالأدرينالين والتنافس ، في هذا المقال، سنستعرض خطوات
برمجة لعبة سباق سيارات بسيطة باستخدام Pygame بدءًا من إعداد البيئة
وحتى إضافة المؤثرات الصوتية.
خطوات برمجة لعبة سباق سيارات
إذا كنت تطمح إلى إنشاء لعبة سباق سيارات فإن بايثون ومكتبة Pygame
توفران لك الأدوات اللازمة لتحقيق ذلك، في هذا القسم، سنستعرض الخطوات الأساسية
التي تحتاج إلى اتباعها لبرمجة لعبة سباق سيارات بسيطة بدءًا من إعداد البيئة وحتى
إضافة المؤثرات الصوتية والميزات الإضافية :
الخطوة 1: إعداد البيئة وتثبيت Pygame
قبل البدء، تأكد من تثبيت بايثون على جهازك. ثم قم بتثبيت مكتبة Pygame باستخدام
الأمر التالي في موجه الأوامر:
pip install pygame
الخطوة 2: إنشاء نافذة اللعبة وتحميل الصور
في هذه الخطوة، سنقوم بإنشاء نافذة اللعبة وتحميل صور السيارات والخلفية :
import pygameimport random
# تهيئة Pygamepygame.init()
# تحديد أبعاد النافذةwidth = 800height = 600screen = pygame.display.set_mode((width, height))pygame.display.set_caption("لعبة سباق السيارات")
# تحميل الصورcar_image = pygame.image.load("car.png")background_image = pygame.image.load("background.png")
الخطوة 3: إنشاء سيارة اللاعب والسيارات المنافسة
سنقوم الآن بإنشاء سيارة اللاعب وتحديد موضعها، بالإضافة إلى إنشاء
السيارات المنافسة وتحديد حركتها :
# سيارة اللاعبcar_x = width / 2car_y = height - car_image.get_height() - 20car_speed = 5
# السيارات المنافسةenemy_cars = []for i in range(3): enemy_x = random.randint(0, width - car_image.get_width()) enemy_y = random.randint(-height, 0) enemy_cars.append([enemy_x, enemy_y, random.randint(3, 7)])
الخطوة 4: التحكم في حركة سيارة اللاعب
سنقوم بإضافة تحكم في حركة سيارة اللاعب باستخدام مفاتيح الأسهم :
# حلقة اللعبة الرئيسيةrunning = Truewhile running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False
keys = pygame.key.get_pressed() if keys[pygame.K_LEFT] and car_x > 0: car_x -= car_speed if keys[pygame.K_RIGHT] and car_x < width - car_image.get_width(): car_x += car_speed
الخطوة 5: تحريك السيارات المنافسة والتحقق من التصادم
سنقوم بتحريك السيارات المنافسة إلى الأسفل والتحقق من التصادم مع سيارة اللاعب:
# تحريك السيارات المنافسة for enemy in enemy_cars: enemy[1] += enemy[2] if enemy[1] > height: enemy[0] = random.randint(0, width - car_image.get_width()) enemy[1] = random.randint(-height, 0)
# التحقق من التصادم if car_x < enemy[0] + car_image.get_width() and car_x + car_image.get_width() > enemy[0] and car_y < enemy[1] + car_image.get_height() and car_y + car_image.get_height() > enemy[1]: running = False print("تصادم!")
الخطوة 6: عرض الرسومات وتحديث الشاشة
سنقوم بعرض الخلفية والسيارات على الشاشة وتحديثها :
# عرض الخلفية والسيارات screen.blit(background_image, (0, 0)) screen.blit(car_image, (car_x, car_y)) for enemy in enemy_cars: screen.blit(car_image, (enemy[0], enemy[1]))
# تحديث الشاشة pygame.display.flip()
الخطوة 7: إضافة المؤثرات الصوتية (اختياري)
يمكنك إضافة مؤثرات صوتية مثل صوت المحرك وصوت التصادم لجعل اللعبة أكثر واقعية :
# تحميل الأصواتcrash_sound = pygame.mixer.Sound("crash.wav")
# تشغيل صوت التصادمif تصادم: crash_sound.play()
الخطوة 8: إضافة النقاط والمؤقت
يمكنك إضافة نظام نقاط لحساب المسافة التي يقطعها اللاعب، ومؤقت لتحديد وقت اللعب :
# النقاط والمؤقتscore = 0start_time = pygame.time.get_ticks()
# عرض النقاط والمؤقتfont = pygame.font.Font(None, 36)score_text = font.render(f"النقاط: {score}", True, (255, 255, 255))time_text = font.render(f"الوقت: {pygame.time.get_ticks() - start_time}", True, (255, 255, 255))screen.blit(score_text, (10, 10))screen.blit(time_text, (10, 50))
الخطوة 9: إضافة مستويات صعوبة :
difficulty_levels = { "Easy": {"enemy_speed": 5, "obstacle_count": 0}, "Medium": {"enemy_speed": 7, "obstacle_count": 3}, "Hard": {"enemy_speed": 10, "obstacle_count": 5}}current_difficulty = "Medium"enemy_speed = difficulty_levels[current_difficulty]["enemy_speed"]
الخطوة 10: إضافة أنواع مختلفة من السيارات والمسارات :
current_car = 0current_track = 0player_car.image = car_images[current_car]background_image = background_images[current_track]
الخطوة 11: إضافة نظام ترقيات :
upgrades = {"speed": 0, "handling": 0}if keys[pygame.K_u]: upgrades["speed"] += 1 player_car.speed += 1
الخطوة 12: إضافة عداد السرعة :
speed_text = font.render(f"Speed: {player_car.velocity}", True, (255, 255, 255))screen.blit(speed_text, (10, 90))
الخطوة 13: إضافة نظام حفظ التقدم :
def save_game(): game_data = {"score": score, "upgrades": upgrades} with open("save.json", "w") as f: json.dump(game_data, f)
خاتمة :
باستخدام هذه الإضافات، يمكنك إنشاء لعبة سباق سيارات متقدمة وممتعة
باستخدام بايثون ومكتبة Pygame، يمكنك تخصيص اللعبة بشكل أكبر
بإضافة المزيد من الميزات والتعديلات.