虽然这样做在python一些测试,在随机开始复制本身就是一个Player类的精灵之一..我不出来..(我意识到这是probally很简单的东西)雪碧复制自己..?
下面的代码:
import pygame
from pygame.locals import *
import time
pygame.font.init()
myfont = pygame.font.SysFont("mirc", 25)
screen = pygame.display.set_mode((720, 480))
clock = pygame.time.Clock()
health = 10
keys = {"w":False, "a":False, "s":False, "d":False, " ":False}
class Thing:
def __init__(self, picture):
self.texture = pygame.image.load(picture).convert()
self.position = [360, 240]
def draw(self, screen):
screen.blit(self.texture, tuple([int(e) for e in self.position]))
def move(self, direction, distance):
if direction == "UP":
self.position[1] -= distance
elif direction == "DOWN":
self.position[1] += distance
elif direction == "RIGHT":
self.position[0] += distance
elif direction == "LEFT":
self.position[0] -= distance
class Enemy:
def __init__(self, picture):
self.texture = pygame.image.load(picture).convert()
self.position = [15, 110]
def draw(self, screen):
screen.blit(self.texture, tuple([int(e) for e in self.position]))
def move(self, distance):
if player.direction == "UP":
self.position[1] -= distance
elif player.direction == "DOWN":
self.position[0] -= distance
elif player.direction == "RIGHT":
self.position[1] += distance
elif player.direction == "LEFT":
self.position[1] += distance
done = False
black = (0, 0, 0)
player = Thing("2.png")
enemy = Enemy("1.png")
while not done:
clock.tick(60)
for event in pygame.event.get():
if event.type == QUIT:
done = True
if event.type == KEYDOWN:
if event.key == K_w:
keys["w"] = True
if event.key == K_a:
keys["a"] = True
if event.key == K_s:
keys["s"] = True
if event.key == K_d:
keys["d"] = True
if event.key == K_SPACE:
keys[" "] = True
if event.type == KEYUP:
if event.key == K_w:
keys["w"] = False
if event.key == K_a:
keys["a"] = False
if event.key == K_s:
keys["s"] = False
if event.key == K_d:
keys["d"] = False
if event.key == K_SPACE:
keys[" "] = False
#Consistent movement
if keys["w"]:
player.move("UP", 2)
if keys["a"]:
player.move("LEFT", 2)
if keys["s"]:
player.move("DOWN", 2)
if keys["d"]:
player.move("RIGHT", 2)
#if keys[" "]:
#Shoot..
#Walls - Player
if player.position[1] <= -2:
player.position[1] += 2
if player.position[1] >= 433:
player.position[1] -= 2
if player.position[0] <= -2:
player.position[0] += 2
if player.position[0] >= 690:
player.position[0] -= 2
#Walls - Enemy
if enemy.position[1] <= -2:
enemy.position[1] += 2
if enemy.position[1] >= 433:
enemy.position[1] -= 2
if enemy.position[0] <= -2:
enemy.position[0] += 2
if enemy.position[0] >= 690:
enemy.position[0] -= 2
#Text
label = myfont.render("Health: " + str(health), 50, (255, 255, 255))
screen.blit(label, (5, 5))
player.draw(screen)
pygame.display.flip()
pygame.quit()
哇。这是*方式*太多的代码。 [mcve]的关键之一是* minimal *部分。我强烈怀疑,当你削减它时,你最终会自己回答这个问题。 –