Beshoy Ehab3 نشر 16 أغسطس 2023 أرسل تقرير نشر 16 أغسطس 2023 أنا أريد أن احرك جميع عناصر الشاشه في نفس الوقت و بنفس السرعه أو اقوم بعمل تتبع للشخصيه بحيث تكون في المنتصف وعندما تخرج من إطار محدد تتحرك الشاشه لتتبعه كيف افعلها؟ 1 اقتباس
0 Mustafa Suleiman نشر 16 أغسطس 2023 أرسل تقرير نشر 16 أغسطس 2023 هناك طريقتان لتحريك جميع عناصر الشاشة في Pygame. الطريقة الأولى هي استخدام وظيفة pygame.transform.scale()، وتستقل تلك الوظيفة صورتك وحجمها الجديد وتعيد صورة جديدة بحجم معين، وبإمكانك استخدام الوظيفة لتحريك جميع عناصر شاشتك بنفس الكمية. الطريقة الثانية هي استخدام وظيفة pygame.draw.rect()، وتستلم الوظيفة موقع المستطيل وحجمه ولونه وترسم مستطيلًا على الشاشة، وتستطيع الإعتماد على الوظيفة لرسم مستطيل يتحرك مع شخصية اللعبة. وإن كنت تريد تتبع شخصية اللعبة بحيث تكون في المنتصف، فعليك باستخدام وظيفة pygame.Rect.center()، حيث تستقبل الوظيفة مستطيلًا وتعيد موقع مركزه، وبالتالي تحريك الشاشة بحيث تكون شخصية اللعبة دائمًا في المنتصف. وسأوضح لك بمثال على كيفية تحريك جميع عناصر الشاشة في Pygame: import pygame # Initialize Pygame pygame.init() # Create a window screen = pygame.display.set_mode((640, 480)) # Create some images image1 = pygame.image.load("image1.png") image2 = pygame.image.load("image2.png") # Scale the images image1 = pygame.transform.scale(image1, (320, 240)) image2 = pygame.transform.scale(image2, (160, 120)) # Draw the images screen.blit(image1, (0, 0)) screen.blit(image2, (320, 0)) # Update the display pygame.display.update() # Main loop while True: # Check for events for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() # Keep the game running pygame.time.delay(100) وإليك مثال على كيفية تتبع شخصية اللعبة بحيث تكون في المنتصف: import pygame # Initialize Pygame pygame.init() # Create a window screen = pygame.display.set_mode((640, 480)) # Create the player player = pygame.Rect(320, 240, 64, 64) # Load the background image background = pygame.image.load("background.png") # Draw the background image screen.blit(background, (0, 0)) # Draw the player screen.blit(player, player.center) # Update the display pygame.display.update() # Main loop while True: # Check for events for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() # Move the player if event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT: player.x -= 10 if event.key == pygame.K_RIGHT: player.x += 10 if event.key == pygame.K_UP: player.y -= 10 if event.key == pygame.K_DOWN: player.y += 10 # Keep the player in the middle of the screen if player.x < 0: player.x = 0 if player.x > 640 - player.width: player.x = 640 - player.width if player.y < 0: player.y = 0 if player.y > 480 - player.height: player.y = 480 - player.height # Draw the player screen.blit(player, player.center) # Update the display pygame.display.update() # Keep the game running pygame.time.delay(100) 1 اقتباس
0 Beshoy Ehab3 نشر 16 أغسطس 2023 الكاتب أرسل تقرير نشر 16 أغسطس 2023 بتاريخ 22 دقائق مضت قال Mustafa Suleiman: هناك طريقتان لتحريك جميع عناصر الشاشة في Pygame. الطريقة الأولى هي استخدام وظيفة pygame.transform.scale()، وتستقل تلك الوظيفة صورتك وحجمها الجديد وتعيد صورة جديدة بحجم معين، وبإمكانك استخدام الوظيفة لتحريك جميع عناصر شاشتك بنفس الكمية. الطريقة الثانية هي استخدام وظيفة pygame.draw.rect()، وتستلم الوظيفة موقع المستطيل وحجمه ولونه وترسم مستطيلًا على الشاشة، وتستطيع الإعتماد على الوظيفة لرسم مستطيل يتحرك مع شخصية اللعبة. وإن كنت تريد تتبع شخصية اللعبة بحيث تكون في المنتصف، فعليك باستخدام وظيفة pygame.Rect.center()، حيث تستقبل الوظيفة مستطيلًا وتعيد موقع مركزه، وبالتالي تحريك الشاشة بحيث تكون شخصية اللعبة دائمًا في المنتصف. وسأوضح لك بمثال على كيفية تحريك جميع عناصر الشاشة في Pygame: import pygame # Initialize Pygame pygame.init() # Create a window screen = pygame.display.set_mode((640, 480)) # Create some images image1 = pygame.image.load("image1.png") image2 = pygame.image.load("image2.png") # Scale the images image1 = pygame.transform.scale(image1, (320, 240)) image2 = pygame.transform.scale(image2, (160, 120)) # Draw the images screen.blit(image1, (0, 0)) screen.blit(image2, (320, 0)) # Update the display pygame.display.update() # Main loop while True: # Check for events for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() # Keep the game running pygame.time.delay(100) وإليك مثال على كيفية تتبع شخصية اللعبة بحيث تكون في المنتصف: import pygame # Initialize Pygame pygame.init() # Create a window screen = pygame.display.set_mode((640, 480)) # Create the player player = pygame.Rect(320, 240, 64, 64) # Load the background image background = pygame.image.load("background.png") # Draw the background image screen.blit(background, (0, 0)) # Draw the player screen.blit(player, player.center) # Update the display pygame.display.update() # Main loop while True: # Check for events for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() # Move the player if event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT: player.x -= 10 if event.key == pygame.K_RIGHT: player.x += 10 if event.key == pygame.K_UP: player.y -= 10 if event.key == pygame.K_DOWN: player.y += 10 # Keep the player in the middle of the screen if player.x < 0: player.x = 0 if player.x > 640 - player.width: player.x = 640 - player.width if player.y < 0: player.y = 0 if player.y > 480 - player.height: player.y = 480 - player.height # Draw the player screen.blit(player, player.center) # Update the display pygame.display.update() # Keep the game running pygame.time.delay(100) أنا أقصد إنه مثلا اذا كان اللاعب سريعا تتحرك الشاشه إتعرض مكانه وليس لتوسطه ولا يجب أن يكون اللاعب على الحافه اقتباس
0 Mustafa Suleiman نشر 16 أغسطس 2023 أرسل تقرير نشر 16 أغسطس 2023 باستطاعتك استخدام نفس الكود الذي قدمته في الاستجابة السابقة لتحريك الشاشة لتتبع شخصية اللعبة، ولكن بإضافة بعض الخطوات الإضافية لمنع اللاعب من الخروج من الشاشة. أولاً، عليك إنشاء مصفوفة من القيم التي تمثل الحدود اليسرى واليمنى العلوية والسفلية للشاشة، ثم استخدام هذه المصفوفة لتحديد ما إذا كان اللاعب يتحرك خارج الشاشة أم لا. ثانيًا، إضافة شرط إلى الحلقة الرئيسية للتحقق مما إذا كان اللاعب يتحرك خارج الشاشة، وإن كان اللاعب يتحرك خارج الشاشة، بإمكانك تحريك الشاشة بحيث يكون اللاعب دائمًا في المنتصف. وإليك مثالاً: import pygame # Initialize Pygame pygame.init() # Create a window screen = pygame.display.set_mode((640, 480)) # Create the player player = pygame.Rect(320, 240, 64, 64) # Load the background image background = pygame.image.load("background.png") # Create a list of the screen borders borders = [0, 0, 640, 480] # Draw the background image screen.blit(background, (0, 0)) # Draw the player screen.blit(player, player.center) # Update the display pygame.display.update() # Main loop while True: # Check for events for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() # Move the player if event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT: player.x -= 10 if event.key == pygame.K_RIGHT: player.x += 10 if event.key == pygame.K_UP: player.y -= 10 if event.key == pygame.K_DOWN: player.y += 10 # Check if the player is outside the screen if player.x < borders[0]: player.x = borders[0] if player.x > borders[2]: player.x = borders[2] if player.y < borders[1]: player.y = borders[1] if player.y > borders[3]: player.y = borders[3] # Draw the player screen.blit(player, player.center) # Update the display pygame.display.update() # Keep the game running pygame.time.delay(100) اقتباس
السؤال
Beshoy Ehab3
أنا أريد أن احرك جميع عناصر الشاشه في نفس الوقت و بنفس السرعه أو اقوم بعمل تتبع للشخصيه بحيث تكون في المنتصف وعندما تخرج من إطار محدد تتحرك الشاشه لتتبعه كيف افعلها؟
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.