Untitled
unknown
plain_text
a year ago
2.3 kB
16
Indexable
import pygame
from pygame import Vector3
# Initialize pygame
pygame.init()
# Set up display
width, height = 800, 600
screen = pygame.display.set_mode((width, height))
pygame.display.set_caption("3D Pixel Survival")
# Colors
black = (0, 0, 0)
white = (255, 255, 255)
red = (255, 0, 0)
green = (0, 255, 0)
# Camera
camera_pos = Vector3(0, 0, -5)
# Player
player_size = 20
player_pos = Vector3(width/2, height/2, 0)
player_speed = 5
player_body =
# Enemies
enemy_size = 10
enemy_pos = Vector3(random.randint(0, width-enemy_size), 0, 0)
enemy_speed = 3
enemies =
# Bullet
bullet_size = 5
bullet_speed = 10
bullets =
# Game loop
game_over = False
while not game_over:
for event in pygame.event.get():
if event.type == pygame.QUIT:
game_over = True
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE:
bullet_pos = Vector3(player_pos.x + player_size/2 - bullet_size/2, player_pos.y, player_pos.z)
bullets.append(bullet_pos)
# Player movement
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
player_pos.x -= player_speed
if keys[pygame.K_RIGHT]:
player_pos.x += player_speed
if keys[pygame.K_UP]:
player_pos.y -= player_speed
if keys[pygame.K_DOWN]:
player_pos.y += player_speed
# Enemy movement
enemy_pos.y += enemy_speed
# Bullet movement
for i, bullet_pos in enumerate(bullets):
bullet_pos.y += bullet_speed
if bullet_pos.y > height:
bullets.pop(i)
# Check for collisions (simplified)
for enemy in enemies:
if (player_pos.x - enemy.x)**2 + (player_pos.y - enemy.y)**2 <= (player_size + enemy_size)**2 / 4:
game_over = True
# Draw
screen.fill(black)
# Draw player (simplified)
pygame.draw.rect(screen, white, (player_pos.x, player_pos.y, player_size, player_size))
# Draw enemies
for enemy in enemies:
pygame.draw.rect(screen, red, (enemy.x, enemy.y, enemy_size, enemy_size))
# Draw bullets
for bullet_pos in bullets:
pygame.draw.rect(screen, green, (bullet_pos.x, bullet_pos.y, bullet_size, bullet_size))
pygame.display.update()
# Game over
pygame.quit()Editor is loading...
Leave a Comment