import pygame
import random
import math
import sys
screenWidth = 1200
screenHeight = 600
class Hero:
def __init__(self, pos):
self.pos = pos
self.width = 30
self.height = 30
self.color = (0, 0, 0)
self.dirX = 0
self.dirY = 0
def move(self):
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_RIGHT:
self.dirX = 1
elif event.key == pygame.K_LEFT:
self.dirX = -1
def draw(self, display):
x = self.pos[0]
y = self.pos[1]
pygame.draw.rect(display, self.color, (x + self.dirX, y + self.dirY, self.width, self.height))
print(self.pos, self.dirX, self.dirY)
def jump(self):
pass
def die(self):
pass
class Enemy:
pass
class Background:
pass
class Obstacles:
pass
class Camera:
pass
def score():
pass
def create(w, h):
display = pygame.display.set_mode((w, h))
display.fill((255, 255, 255))
#create background
#create Obstacles
#create Hero
heroOne = Hero([150, 450])
heroOne.move()
heroOne.draw(display)
#create Enemy
pygame.display.update()
def main():
pygame.init()
clock = pygame.time.Clock()
running = True
while running:
clock.tick(300)
create(screenWidth, screenHeight)
main()
嗨,我正在使用 Pygame 制作一个 OOP 游戏,其中一个方块将由用户控制并沿着地板移动,跳过障碍物和其他敌人方块。
我希望它的工作方式:当我按下 K_LEFT 时,dirX = 1它将添加到的 x 坐标pos,因此正方形的 x 位置将被更新并且正方形将开始向右滑动。当我按下时dir = -1,方形会向左移动。
它的工作方式:否
我认为问题是pos主多维数据集似乎没有更新,并且dirX更新从0到1并返回到0。
我想改变函数下变量的值__init__()是在我做的时候完成的,或者它可能是完全错误的。
这是使我的代码按照我尝试的方式工作的任何方法,还是完全错误的方法并且还有其他方法?
我正在学习 OOP 和 python,非常感谢与此代码相关的有关最佳实践的任何其他建议或链接。
千巷猫影
FFIVE
相关分类