mirror of
https://github.com/friuns2/BlackFriday-GPTs-Prompts.git
synced 2026-04-30 22:13:55 +07:00
401 lines
6.8 KiB
Markdown
401 lines
6.8 KiB
Markdown
|
|
[](https://gptcall.net/chat.html?data=%7B%22contact%22%3A%7B%22id%22%3A%22UMAR0WyonuAcXfnawcMzc%22%2C%22flow%22%3Atrue%7D%7D)
|
|
# 2D Platformer Game | [Start Chat](https://gptcall.net/chat.html?data=%7B%22contact%22%3A%7B%22id%22%3A%22UMAR0WyonuAcXfnawcMzc%22%2C%22flow%22%3Atrue%7D%7D)
|
|
Create a 2D platformer game, even 5 years old can use this
|
|
|
|
# Prompt
|
|
|
|
```
|
|
Please create a basic 2D platformer game using the Pygame library. The game should feature a player character that has the ability to move left and right, jump, and interact with platforms and obstacles. The code should follow the PEP 8 guidelines and be of intermediate complexity. Additionally, the code should include basic error handling and comments to explain the main steps.
|
|
|
|
Please note that your implementation should be flexible enough to allow for various creative and unique features that enhance the gameplay.
|
|
```
|
|
|
|
## Conversation
|
|
|
|
**ASSISTANT**: Star with example "i want a game where player character that has the ability to move left and right, jump, and interact with platforms and obstacles"
|
|
**USER**: Star with example "i want a game where player character that has the ability to move left and right, jump, and interact with platforms and obstacles"
|
|
**ASSISTANT**: Sure. Here is an example of a basic 2D platformer game using the Pygame library:
|
|
|
|
|
|
|
|
```python
|
|
|
|
import pygame
|
|
|
|
|
|
|
|
# Define the player character
|
|
|
|
class Player(pygame.sprite.Sprite):
|
|
|
|
def __init__(self):
|
|
|
|
super().__init__()
|
|
|
|
self.image = pygame.image.load("player.png")
|
|
|
|
self.rect = self.image.get_rect()
|
|
|
|
self.rect.centerx = 300
|
|
|
|
self.rect.bottom = 400
|
|
|
|
self.speed = 10
|
|
|
|
|
|
|
|
def update(self):
|
|
|
|
# Move the player left or right
|
|
|
|
self.rect.x += self.speed * pygame.key.get_pressed()[pygame.K_LEFT] - self.speed * pygame.key.get_pressed()[pygame.K_RIGHT]
|
|
|
|
|
|
|
|
# Check if the player has collided with a platform
|
|
|
|
for platform in platforms:
|
|
|
|
if platform.colliderect(self.rect):
|
|
|
|
self.rect.x = platform.rect.right - self.rect.width
|
|
|
|
|
|
|
|
# Check if the player has fallen off the bottom of the screen
|
|
|
|
if self.rect.bottom > 600:
|
|
|
|
self.kill()
|
|
|
|
|
|
|
|
# Define the platforms
|
|
|
|
class Platform(pygame.sprite.Sprite):
|
|
|
|
def __init__(self, x, y):
|
|
|
|
super().__init__()
|
|
|
|
self.image = pygame.image.load("platform.png")
|
|
|
|
self.rect = self.image.get_rect()
|
|
|
|
self.rect.top = y
|
|
|
|
self.rect.x = x
|
|
|
|
|
|
|
|
# Define the game window
|
|
|
|
screen = pygame.display.set_mode((640, 480))
|
|
|
|
|
|
|
|
# Initialize the pygame library
|
|
|
|
pygame.init()
|
|
|
|
|
|
|
|
# Create the player character
|
|
|
|
player = Player()
|
|
|
|
|
|
|
|
# Create the platforms
|
|
|
|
platforms = [Platform(100, 100), Platform(300, 200), Platform(500, 300)]
|
|
|
|
|
|
|
|
# Create the main loop
|
|
|
|
while True:
|
|
|
|
# Check for events
|
|
|
|
for event in pygame.event.get():
|
|
|
|
if event.type == pygame.QUIT:
|
|
|
|
pygame.quit()
|
|
|
|
break
|
|
|
|
|
|
|
|
# Update the player character
|
|
|
|
player.update()
|
|
|
|
|
|
|
|
# Draw the background
|
|
|
|
background = pygame.image.load("background.png")
|
|
|
|
screen.blit(background, (0, 0))
|
|
|
|
|
|
|
|
# Draw the platforms
|
|
|
|
for platform in platforms:
|
|
|
|
screen.blit(platform.image, platform.rect)
|
|
|
|
|
|
|
|
# Draw the player character
|
|
|
|
screen.blit(player.image, player.rect)
|
|
|
|
|
|
|
|
# Update the screen
|
|
|
|
pygame.display.flip()
|
|
|
|
```
|
|
|
|
|
|
|
|
This is just a basic example, and there are many ways to improve it. For example, you could add more platforms, enemies, and power-ups. You could also add different levels and game modes.
|
|
**USER**: add more platforms, enemies, and power-ups.
|
|
**ASSISTANT**: Sure. Here is an example of a basic 2D platformer game using the Pygame library with more platforms, enemies, and power-ups:
|
|
|
|
|
|
|
|
```python
|
|
|
|
import pygame
|
|
|
|
|
|
|
|
# Define the player character
|
|
|
|
class Player(pygame.sprite.Sprite):
|
|
|
|
def __init__(self):
|
|
|
|
super().__init__()
|
|
|
|
self.image = pygame.image.load("player.png")
|
|
|
|
self.rect = self.image.get_rect()
|
|
|
|
self.rect.centerx = 300
|
|
|
|
self.rect.bottom = 400
|
|
|
|
self.speed = 10
|
|
|
|
|
|
|
|
def update(self):
|
|
|
|
# Move the player left or right
|
|
|
|
self.rect.x += self.speed * pygame.key.get_pressed()[pygame.K_LEFT] - self.speed * pygame.key.get_pressed()[pygame.K_RIGHT]
|
|
|
|
|
|
|
|
# Check if the player has collided with a platform
|
|
|
|
for platform in platforms:
|
|
|
|
if platform.colliderect(self.rect):
|
|
|
|
self.rect.x = platform.rect.right - self.rect.width
|
|
|
|
|
|
|
|
# Check if the player has fallen off the bottom of the screen
|
|
|
|
if self.rect.bottom > 600:
|
|
|
|
self.kill()
|
|
|
|
|
|
|
|
# Define the platforms
|
|
|
|
class Platform(pygame.sprite.Sprite):
|
|
|
|
def __init__(self, x, y):
|
|
|
|
super().__init__()
|
|
|
|
self.image = pygame.image.load("platform.png")
|
|
|
|
self.rect = self.image.get_rect()
|
|
|
|
self.rect.top = y
|
|
|
|
self.x = x
|
|
|
|
|
|
|
|
def update(self):
|
|
|
|
# Move the platform left or right
|
|
|
|
self.x += 5
|
|
|
|
|
|
|
|
# Check if the platform has gone off the screen
|
|
|
|
if self.x < 0:
|
|
|
|
self.kill()
|
|
|
|
|
|
|
|
# Define the enemies
|
|
|
|
class Enemy(pygame.sprite.Sprite):
|
|
|
|
def __init__(self, x, y):
|
|
|
|
super().__init__()
|
|
|
|
self.image = pygame.image.load("enemy.png")
|
|
|
|
self.rect = self.image.get_rect()
|
|
|
|
self.rect.top = y
|
|
|
|
self.x = x
|
|
|
|
|
|
|
|
def update(self):
|
|
|
|
# Move the enemy left or right
|
|
|
|
self.x += 5
|
|
|
|
|
|
|
|
# Check if the enemy has gone off the screen
|
|
|
|
if self.x < 0:
|
|
|
|
self.kill()
|
|
|
|
|
|
|
|
# Define the power-ups
|
|
|
|
class PowerUp(pygame.sprite.Sprite):
|
|
|
|
def __init__(self, x, y):
|
|
|
|
super().__init__()
|
|
|
|
self.image = pygame.image.load("powerup.png")
|
|
|
|
self.rect = self.image.get_rect()
|
|
|
|
self.rect.top = y
|
|
|
|
self.x = x
|
|
|
|
|
|
|
|
def update(self):
|
|
|
|
# Move the power-up left or right
|
|
|
|
self.x += 5
|
|
|
|
|
|
|
|
# Check if the power-up has gone off the screen
|
|
|
|
if self.x < 0:
|
|
|
|
self.kill()
|
|
|
|
|
|
|
|
# Define the game window
|
|
|
|
screen = pygame.display.set_mode((640, 480))
|
|
|
|
|
|
|
|
# Initialize the pygame library
|
|
|
|
pygame.init()
|
|
|
|
|
|
|
|
# Create the player character
|
|
|
|
player = Player()
|
|
|
|
|
|
|
|
# Create the platforms
|
|
|
|
platforms = [Platform(100, 100), Platform(300, 200), Platform(500, 300)]
|
|
|
|
|
|
|
|
# Create the enemies
|
|
|
|
enemies = [Enemy(100, 100), Enemy(300, 200), Enemy(500, 300)]
|
|
|
|
|
|
|
|
# Create the power-ups
|
|
|
|
power-ups = [PowerUp(100, 100), PowerUp(300, 200), PowerUp(500, 300)]
|
|
|
|
|
|
|
|
# Create the main loop
|
|
|
|
while True:
|
|
|
|
# Check for events
|
|
|
|
for event in pygame.event.get():
|
|
|
|
if event.type == pygame.QUIT:
|
|
|
|
pygame.quit()
|
|
|
|
break
|
|
|
|
|
|
|
|
# Update the player character
|
|
|
|
player.update()
|
|
|
|
|
|
|
|
# Update the platforms
|
|
|
|
for platform in platforms:
|
|
|
|
platform.update()
|
|
|
|
|
|
|
|
# Update the enemies
|
|
|
|
for enemy in enemies:
|
|
|
|
enemy.update()
|
|
|
|
|