Я пытаюсь вывести моего вражеского персонажа (танк) на экран.Я не получаю ошибок при запуске, но он не отображается в окне.Мотоцикл и фоновый режим, кажется, работают нормально, но бак не отображается
Я пытался переместить вызов drawEnemy в другой раздел, но это не помогло.Приведено в том же духе
#loading in images
bgImage = pygame.image.load('images/bgImage.jpg')
leftMoveImage = [pygame.image.load('images/bikeLeft.png'),pygame.image.load('images/bikeLeft.png')]
rightMoveImage = [pygame.image.load('images/bikeRight.png'),pygame.image.load('images/bikeRight.png')]
#class for main motorcycle character
class motorcycle():
def __init__(self, x, y, width, height): #initialization function for class
#class attributes
self.jumping = False
self.height = height
self.width = width
self.x = x
self.y = y
self.still = True
self.velocity = 10
self.jumpTime = 8
self.leftMove = False
self.rightMove = False
self.moveCounter = 0
def charDraw(self, window): #function to draw character on the screen
if not (self.still):
if self.leftMove == True:
window.blit(leftMoveImage[self.moveCounter//35],(self.x,self.y)) #draw left image
self.moveCounter += 1
elif self.rightMove == True:
window.blit(rightMoveImage[self.moveCounter//35],(self.x,self.y)) #draw right image
self.moveCounter += 1
else:
if self.leftMove == True:
window.blit(leftMoveImage[0], (self.x,self.y))
else:
window.blit(rightMoveImage[0], (self.x,self.y))
#class for enemies:
class badGuys():
tankLeftImage = pygame.image.load('images/tankLeft.png')
tankRightImage = pygame.image.load('images/tankRight.png')
def __init__(self, x, y, width, height, stop):
self.x = x
self.y = y
self. width = width
self.height = height
self.stop = stop
self.moveCounter = 0
self.speed = 4
self.enemyPath = [self.x, self.stop]
def drawEnemy(self, window):
self.moveMe()
if self.moveCounter + 1 >= 50:
self.moveCounter = 0
if self.speed > 0:
window.blit(self.tankRightImage, (self.x, self.y)) #drawing tank to the right
self.moveCounter = self.moveCounter + 1
else:
window.blit(self.tankLeftImage, (self.x, self.y)) #drawing tank to the left
self.moveCounter = self.moveCounter + 1
def moveMe(self):
if self.speed > 0:
if self.speed + self.x < self.enemyPath[1]: #allowing enemy to move to end
self.x = self.x + self.speed
else:
self.speed = self.speed * -1 #changing directions
self.moveCounter = 0
else:
if self.x - self.speed > self.enemyPath[0]: #checking enemy doesn't pass beginning coordinate
self.x = self.x + self.speed
else:
self.speed = self.speed * -1 #changing directions again (negative * negative equals positive value)
self.moveCounter = 0
#draw routine
def drawScreen():
global currentScore #globalizing cuerrentScore variable
#setting up scoreboard
scoretext = font.render("Score = "+str(currentScore), 1, (0,0,0))
window.blit(scoretext, (5, 10))
window.blit(bgImage, (0,0)) #drawing the backround image
bike.charDraw(window) #drawing bike
tank.drawEnemy(window) #drawing tank
#blitting score to screen
window.blit(scoretext, (5, 10))
pygame.display.update()
#initializing object of class 'motorcycle' named 'bike'
bike = motorcycle(0, 501, 171, 99)
#initializing object of class 'badGuys' named 'tank'
tank = badGuys(0, 651, 120, 42, 480)
drawScreen()
pygame.quit()