python怎么制作东西上下移动_如何在pygame中制造一个向上移动的弹丸?

我写了一个游戏,就是在按下空格键时,在屏幕上打出一个蓝色方块。然而,我得到的只是射击者上方的蓝色方块。这是我的代码:import pygame, sys, random

from gameobjects import *

def main():

pygame.init()

screen = pygame.display.set_mode((800, 800))

numberOfColumns = 5

columnWidth = screen.get_width() / numberOfColumns

numberOfRows = 5

rowWidth = screen.get_width() / numberOfRows

magazineImage = pygame.image.load("images/Magazine.bmp")

magazineIssueOneImage = pygame.image.load("images/Magazine #1.bmp")

monsterState1 = pygame.image.load("images/Zombie Pos 1.bmp")

monsterState2 = pygame.image.load("images/Zombie Pos 2.bmp")

monsterState3 = pygame.image.load("images/Zombie Pos 3.bmp")

monsters = []

forryState1 = pygame.image.load("images/Forry Pos 1.bmp")

forryState2 = pygame.image.load("images/Forry Pos 2.bmp")

forryDelayTime = 8

gameObjects = []

gameObjectBlittingCounter = 0

monsterSpawnSpotList = [(rowWidth * -5), (rowWidth * -4), (rowWidth * -3), (rowWidth * -2), (rowWidth * -1)]

for monster in range(0, 5):

monster = Monster(monsterState1, monsterState2, monsterState3, ((columnWidth / 2 - monsterState1.get_width() / 2) + gameObjectBlittingCounter * columnWidth), random.choice(monsterSpawnSpotList))

monsters.append(monster)

gameObjects.append(monster)

gameObjectBlittingCounter += 1

forry = Forry(forryState1, forryState2, columnWidth, rowWidth, screen, forryDelayTime, magazineImage, magazineIssueOneImage)

gameObjects.append(forry)

while True:

screen.fill((0,255,0))

for event in pygame.event.get():

if event.type == pygame.QUIT:

sys.exit()

#Update Projectiles

if forry.projectileCall == True:

magazine = Magazine(magazineImage, forry)

gameObjects.append(magazine)

#Update Game Objects

for gameObject in gameObjects:

gameObject.update()

#Render

gameObjectBlittingCounter = 0

for gameObject in gameObjects:

screen.blit(gameObjects[gameObjectBlittingCounter].image, ((gameObjects[gameObjectBlittingCounter].rect.x), (gameObjects[gameObjectBlittingCounter].rect.y)))

gameObjectBlittingCounter += 1

pygame.display.flip()

if __name__ == "__main__":

main()

文件游戏对象.py看起来像这样:

^{pr2}$

我的杂志是蓝色的正方形

那为什么我的炮弹不上屏幕呢?在

+

在下面的答案中进行了所有修复后,现在我遇到了另一个错误:

当蓝色的盒子从屏幕上消失时,它应该是因为自我毁灭()在Magazine类的更新功能中。在

然而,当他们中的一个离开屏幕的时候,并不是被杀,而是给了我这些错误:Traceback (most recent call last):

File "main.py", line 106, in

main()

File "main.py", line 78, in main

projectileObject.update()

File "/Users/number1son100/Desktop/Famous Monsters Game/gameobjects.py", line 117, in update

self.kill()

File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pygame/sprite.py", line 174, in kill

for c in self.__g.keys():

AttributeError: 'Magazine' object has no attribute '_Sprite__g'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值