- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试用 Sprite 制作一个基本的射击游戏。当我尝试运行时,我的 for 循环中的 Alien.rect.x 行出现错误。它说我的对象 Alien 没有 rect 属性。我认为我的 Alien 类中的 self.rect = self.image.get_rect () 可以解决这个问题?我究竟做错了什么?我需要 Sprite 列表吗?
#Created by Mark Schaeffler 4/17/18
import pygame
import random
import sys
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
WINDOWWIDTH = 600
WINDOWHEIGHT = 600
TEXTCOLOR = (255, 255, 255)
BACKGROUNDCOLOR = (0, 0, 0)
FPS = 40
PLAYERMOVERATE = 5
# set up pygame, the window, and the mouse cursor
pygame.init()
clock = pygame.time.Clock()
windowSurface = pygame.display.set_mode((WINDOWWIDTH, WINDOWHEIGHT))
pygame.display.set_caption('Alien Invasion')
pygame.mouse.set_visible(False)
# set up fonts
font = pygame.font.Font(None, 48)
# set up sounds
game_over_sound = pygame.mixer.Sound("gameover.wav")
background_music = pygame.mixer.Sound("Background_Music.ogg")
click_sound = pygame.mixer.Sound("laser5.ogg")
#Terminate
def terminate():
pygame.quit()
sys.exit()
#Class for player
class Player(pygame.sprite.Sprite):
def __init__(self):
# Call the parent class (Sprite) constructor
super().__init__()
#Load player image
self.image = pygame.image.load("Player1.png").convert()
self.image.set_colorkey(BLACK)
self.rect = self.image.get_rect()
def update(self):
# Update the player's position
# Get the current mouse position.
pos = pygame.mouse.get_pos()
# Set the player x, y position
self.rect.x = pos[0]
self.rect.y = pos[0]
#Class for bullets
class Bullet(pygame.sprite.Sprite):
def __init__(self):
# Call the parent class (Sprite) constructor
super().__init__()
self.image = pygame.Surface([4, 10])
self.image.fill(WHITE)
self.rect = self.image.get_rect()
def update(self):
# Move the bullet
self.rect.y -= 3
#Class for aliens
class Aliens(pygame.sprite.Sprite):
def __init__(self):
super().__init__()
self.image = pygame.image.load("Aliensprite1")
self.rect = self.image.get_rect()
def reset_pos(self):
self.rect.y = random.randrange(-300, -20)
self.rect.x = random.randrange(0, WINDOWWIDTH)
def update(self):
# Move alien down one pixel
self.rect.y += 1
# If alien is too far down, reset to top of screen.
if self.rect.y > 610:
self.reset_pos()
def waitForPlayerToPressKey():
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
terminate()
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE: # pressing escape
quits
terminate()
return
# List of every sprite. All aliens, bullets, player
all_sprites_list = pygame.sprite.Group()
# List of each alien in the game
alien_list = pygame.sprite.Group()
# List of each bullet
bullet_list = pygame.sprite.Group()
for i in range(50):
# This represents an alien
alien = Aliens
# Set random location for the aliens
alien.rect.x = random.randrange(WINDOWWIDTH)
# Add aliens to the list of objects
alien_list.add(alien)
all_sprites_list.add(alien)
def drawText(text, font, surface, x, y):
textobj = font.render(text, 1, TEXTCOLOR)
textrect = textobj.get_rect()
textrect.topleft = (x, y)
surface.blit(textobj, textrect)
# "Start" screen
drawText('Alien Invasion', font, windowSurface, (WINDOWWIDTH / 3),
(WINDOWHEIGHT / 3))
drawText('Press any key to start.', font, windowSurface, (WINDOWWIDTH
/ 3) - 30, (WINDOWHEIGHT / 3) + 50)
pygame.display.update()
waitForPlayerToPressKey()
# Loop until the user clicks the close button.
done = False
# Used to manage how fast the screen updates
clock = pygame.time.Clock()
score = 0
topScore = 0
player.rect.y = 370
background_music.play()
# -------- Main Program Loop -----------
最佳答案
您需要创建 Aliens
类的实例,您缺少括号:
alien = Aliens()
这会调用类构造函数并创建 Aliens
的新对象。
关于python - Alien 类没有 rect 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50006537/
我正在尝试使用 alien 0.50 模块将此 C 结构重新定义为 Lua,但最后我有两个 char 数组。 szLibraryPath 和 szLibraryName 最初定义为 char szLi
我目前在使用 Lua 和外星人模块以使用 Win32 API 等 Lua 脚本时遇到了问题。到目前为止,我只遇到了 Alien 的一个问题,即使用使用某些结构(例如 CreateFontIndirec
我的目标是调用 Windows 的 GetModuleInformation获得 MODULEINFO 的函数结构回来。这一切正常。问题是由于我想对 LPVOID lpBaseOfDll 进行指针运算
Epic喜加一:免费领取《Alien: Isolation》 《Alien: Isolation》是一款以持续恐惧和致命危险气氛为背景的生存恐怖游戏, 使用 CATHODE™ 引擎打造。 现在可
我正在尝试用 Sprite 制作一个基本的射击游戏。当我尝试运行时,我的 for 循环中的 Alien.rect.x 行出现错误。它说我的对象 Alien 没有 rect 属性。我认为我的 Alien
有人可以告诉我这意味着什么以及如何解决吗? “Alien”是一个 Sprite ,alienPosition 变量被分配为 double 值。 alienPosition = alien.positi
我无法安装 Alien::XGBoost在 Windows 10 上使用默认安装的 Strawberry Perl 库。我使用的是 64 位版本的 Strawberry Perl。 安装 Alien:
如何做到这样,当您搜索“alien vs predator”时,您还可以得到带有“S”的字符串“alienS vs predator”的结果 示例 http://www.torrentz.com/se
我想用 perl 录制视频,我在 cpan 上找到了以下 2 个模块: Alien-ffmpeg ( https://metacpan.org/pod/release/GETTY/Alien-ffmp
我想做的是减少构建文件中的冗余。不幸的是,我想不出一种方法来规避 ant 对嵌套元素的限制。 一个例子是外部化MANIFEST的填充,这对所有的.jars和.ears都是一样的。 我定义了一个宏,用s
我正在使用Alien for Lua引用WaitForSingleObject function在 Windows Kernel32.dll 中。 我对 Windows 编程还很陌生,所以我的问题是关
我正在尝试使用 wxWidgets 版本 3.0.2 安装 Alien::wxWidgets 版本 0.67,但无论我做什么,都会收到以下错误: checking if C compiler (cla
与 this one 基本相同但这并没有真正结束。 我面临着同样的问题,而且我走得更远。我必须更改代码以允许更新的 Macos sdk (10.11)。所以它编译了一段时间,但后来失败了: ❯❯❯ p
Alien.java(Pojo 类),这是我的 pojo 类 package com.me.Hive1; import javax.persistence.Entity; import j
问。给定用外来语言编写的单词序列以及字母表顺序,当且仅当给定单词在此外语中按字典顺序排序时返回 true。以下是一些示例: Input: words = ["hello","leetcode"], o
总结 我的屏幕底部有一个不合适的矩形红色框。 背景 在我的本地开发工作区使用 Chrome 的开发者工具,我将问题的根源确定为一个相对较新引入的 canvas 元素,我并不完全理解它。我探索了 w3s
我刚刚通过 gem install 安装了 Phusion Passenger 网络服务器。然后我做了一个 gem check --alien并收到此错误消息: fastthread-1.0.7 ha
我编译了一堆在线资源,这些资源让我来到这里。希望我所拥有的很接近。不幸的是,我没有 Windows 编程经验。我来自 Linux 背景。我也是新来的 alien对于 Lua,但我非常了解 Lua。 我
使用一本书来学习如何制作一个简单的pygame外星人入侵。我到达了需要绘制外星人舰队的部分,但是当我试图在x级别上绘制整个舰队并要求一个组时对象,它给了我错误(完整回溯): 回溯(最近一次调用最后一次
我有一个 RPM 包,我使用 alien 将其转换为 Debian 包。当我尝试使用 ubuntu 软件中心在 ubuntu 上安装它时,它会发出警告,例如维护者名称/地址格式错误(当我使用 dpkg
我是一名优秀的程序员,十分优秀!