informatica:programacion:python:pyxel:juego_tipo_endless_runner
Endless Runner clon
Juego tipo Endless Runner usando Pyxel.
El código fue generado por DeepSeek (una inteligencia artificial generativa)
import pyxel import random class AutoRunner: def __init__(self): pyxel.init(160, 120, title="Pyxel Runner", fps=60) self.reset_game() pyxel.run(self.update, self.draw) def reset_game(self): # Jugador self.player_x = 30 self.player_y = 80 self.jump_velocity = 0 self.gravity = 0.5 self.is_jumping = False # Obstáculos self.obstacles = [] self.obstacle_speed = 2 self.spawn_timer = 0 # Estado del juego self.score = 0 self.game_over = False self.ground_level = 90 def update(self): if self.game_over: if pyxel.btnp(pyxel.KEY_R): self.reset_game() return # Movimiento automático del jugador self.score += 1 self.obstacle_speed = 2 + self.score // 500 # Dificultad progresiva # Gravedad y salto self.player_y += self.jump_velocity self.jump_velocity += self.gravity # Colisión con el suelo if self.player_y >= self.ground_level: self.player_y = self.ground_level self.jump_velocity = 0 self.is_jumping = False # Salto (tecla espacio o arriba) if pyxel.btnp(pyxel.KEY_SPACE) and not self.is_jumping: self.jump_velocity = -5 self.is_jumping = True # Generar obstáculos self.spawn_timer += 1 if self.spawn_timer > 30 - (self.score // 100): self.obstacles.append({ 'x': 160, 'y': self.ground_level, 'width': 10, 'height': 20 }) self.spawn_timer = 0 # Mover obstáculos for obstacle in self.obstacles: obstacle['x'] -= self.obstacle_speed # Detectar colisiones if (self.player_x < obstacle['x'] + obstacle['width'] and self.player_x + 10 > obstacle['x'] and self.player_y < obstacle['y'] + obstacle['height'] and self.player_y + 10 > obstacle['y']): self.game_over = True # Eliminar obstáculos fuera de pantalla self.obstacles = [o for o in self.obstacles if o['x'] > -20] def draw(self): pyxel.cls(12) # Fondo celeste # Suelo pyxel.rect(0, self.ground_level + 10, 160, 20, 3) # Jugador pyxel.rect(self.player_x, self.player_y, 10, 10, 8 if self.is_jumping else 2) # Obstáculos for obstacle in self.obstacles: pyxel.rect(obstacle['x'], obstacle['y'], obstacle['width'], obstacle['height'], 8) # UI pyxel.text(5, 5, f"SCORE: {self.score}", 7) pyxel.text(5, 15, f"SPEED: {self.obstacle_speed}", 7) if self.game_over: pyxel.text(60, 50, "GAME OVER", 8) pyxel.text(45, 70, "Press R to restart", 7) AutoRunner()
informatica/programacion/python/pyxel/juego_tipo_endless_runner.txt · Última modificación: por tempwin
