한 이미지가 다른 이미지를 치는지 수동으로 확인해야합니다. 나는 결과를 얻는 것처럼 보일 수 없다. ... 제발 이것은 나를 미치게 만든다 !!! 나는 2 일 동안 노력했지만 효과가 없을 것이다.pygame.rect.colliderect()가 작동하지 않습니다.
Menu()와 같은 다른 코드는 포함하지 않았지만 main()은 잘 작동합니다. 좀비가 플레이어 위에있을 때 왜 돌아 오지 않을지 이해할 수 없습니다.
class Game():
def setup(self):
global tiles
for files in os.listdir(os.curdir):
if files.endswith(".png") and files != "Player.png" and files != "Zombie.png":
tilees.append(files)
numtil = tilees.count(files)
print("a " + str(numtil))
fli = pygame.image.load(files).convert_alpha()
i = 0
while i <= 1000:
tiles.append(fli)
i = i + 1
global TileLen
TileLen = tiles.count(fli)
Game().Game()
def Game(self):
global zomx, zomy, zombie, MMS, step, zombieRect
zombieRect = []
zomx = []
zomy = []
zombie = []
step = 0
HP = 15
Map = pygame.image.load("BG.png").convert()
Map = pygame.transform.scale(Map, (pygame.display.list_modes()[0]))
person = pygame.image.load("Player.png").convert()
person = pygame.transform.scale(person, (30, 30))
dagger = pygame.image.load("Dagger.png").convert_alpha()
dagger = pygame.transform.scale(dagger, (13, 13))
screen.blit(Map, (0, 0))
perx = 800
pery = 700
ai().zombieadd(MMS)
screen.blit(person, (perx, pery))
screen.blit(dagger, (perx+20, pery-5))
global thething
thething = 0
for crap in zombie:
screen.blit(zombie[thething], (zomx[thething], zomy[thething]))
print(thething)
thething = thething + 1
pygame.display.flip()
awesome = 1
fttt = 0
ff = 0
ofx = 0
ofy = 0
while 1:
print(perx, pery)
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
elif event.type == KEYDOWN:
if event.key == K_w:
pery = pery - 5
if fttt != 1:
if awesome == 4:
dagger = pygame.transform.rotate(dagger, 270)
person = pygame.transform.rotate(person, 270)
elif awesome == 3:
dagger = pygame.transform.rotate(dagger, 90)
person = pygame.transform.rotate(person, 90)
elif awesome == 2:
dagger = pygame.transform.rotate(dagger, 180)
person = pygame.transform.rotate(person, 180)
person = pygame.transform.rotate(person, 0)
dagger = pygame.transform.rotate(dagger, 0)
awesome = 1
fttt = 1
elif event.key == K_s:
pery = pery + 5
if fttt != 2:
if awesome == 4:
dagger = pygame.transform.rotate(dagger, 270)
person = pygame.transform.rotate(person, 270)
elif awesome == 3:
dagger = pygame.transform.rotate(dagger, 90)
person = pygame.transform.rotate(person, 90)
person = pygame.transform.rotate(person, 180)
dagger = pygame.transform.rotate(dagger, 180)
awesome = 2
fttt = 2
elif event.key == K_a:
perx = perx - 5
if fttt != 3:
if awesome == 2:
dagger = pygame.transform.rotate(dagger, 180)
person = pygame.transform.rotate(person, 180)
elif awesome == 4:
dagger = pygame.transform.rotate(dagger, 270)
person = pygame.transform.rotate(person, 270)
person = pygame.transform.rotate(person, 270)
dagger = pygame.transform.rotate(dagger, 270)
awesome = 3
fttt = 3
elif event.key == K_d:
perx = perx + 5
if fttt != 4:
if awesome == 2:
dagger = pygame.transform.rotate(dagger, 180)
person = pygame.transform.rotate(person, 180)
elif awesome == 3:
dagger = pygame.transform.rotate(dagger, 90)
person = pygame.transform.rotate(person, 90)
person = pygame.transform.rotate(person, 90)
dagger = pygame.transform.rotate(dagger, 90)
awesome = 4
fttt = 4
elif event.key == K_e:
if awesome == 1:
while ofx >= -6:
ofx = ofx - 1
screen.blit(dagger, (perx+20, pery-5+ofx))
pygame.time.delay(1)
pygame.display.update()
if ofx <= -6:
ofx = 0
elif awesome == 2:
while ofx >= -6:
ofx = ofx - 1
screen.blit(dagger, (perx-5, pery+25-ofx))
pygame.time.delay(1)
pygame.display.update()
if ofx <= -6:
ofx = 0
if awesome == 3:
while ofx >= -6:
ofx = ofx - 1
screen.blit(dagger, (perx-5+ofx, pery-5))
pygame.time.delay(1)
pygame.display.update()
if ofx <= -6:
ofx = 0
if awesome == 4:
while ofx >= -6:
ofx = ofx - 1
screen.blit(dagger, (perx+20-ofx, pery+25))
pygame.time.delay(1)
pygame.display.update()
if ofx <= -6:
ofx = 0
screen.blit(Map, (0, 0))
screen.blit(person, (perx, pery))
if awesome == 1:
screen.blit(dagger, (perx+20, pery-5))
elif awesome == 2:
screen.blit(dagger, (perx-5, pery+25))
elif awesome == 3:
screen.blit(dagger, (perx-5, pery-5))
else:
screen.blit(dagger, (perx+20, pery+25))
text = "Health: "+str(HP)
font = pygame.font.Font(None, 32)
ttex = font.render(text, True, (255, 0, 0))
screen.blit(ttex, (30, 30))
thecrap = 0
while thecrap < thething:
print(thecrap)
screen.blit(zombie[thecrap], (zomx[thecrap], zomy[thecrap]))
if perx >= zomx[thecrap]:
loop = 0
while loop <= 5:
zomx[thecrap] = zomx[thecrap] + .09
loop = loop + 1
if pery >= zomy[thecrap]:
loop = 0
while loop <= 5:
zomy[thecrap] = zomy[thecrap] + .09
loop = loop + 1
if perx <= zomx[thecrap]:
loop = 0
while loop <= 5:
zomx[thecrap] = zomx[thecrap] - .09
loop = loop + 1
if pery <= zomy[thecrap]:
loop = 0
while loop <= 5:
zomy[thecrap] = zomy[thecrap] - .09
loop = loop + 1
if person.get_rect().contains(pygame.Rect(zomx[thecrap], zomy[thecrap], 30, 30)):
HP = HP - .5
thecrap = thecrap + 1
thecrap = 0
pygame.display.update()
if HP <= 0:
print("Game over! Sorry!")
while 1:
abss = font.render("Sorry, but you lost! Press any key to continue...", True, (255, 255, 255))
pygame.display.update()
screen.blit(abss, (90, 90))
for event in pygame.event.get():
Menu().main()
class ai():
def zombieadd(self, Num):
global zomx, zomy, zombie, zombieRect
zombieRect = []
zombie = []
global step
step = 0
print(Num)
while Num > step:
global zomx, zomy, zombie
print(step)
zomx.append(random.randint(0, 600))
zomy.append(random.randint(0, 600))
zombieI = pygame.image.load("Zombie.png").convert()
zombie.append(zombieI)
zombie[step] = pygame.transform.scale(zombie[step], (30, 30))
print(zomx[step], zomy[step])
zombieRect.append(zombie[step].get_rect())
step = step + 1
Num = 0
return 0
Menu().main()
class Game():
def setup(self):
global tiles
for files in os.listdir(os.curdir):
if files.endswith(".png") and files != "Player.png" and files != "Zombie.png":
tilees.append(files)
numtil = tilees.count(files)
print("a " + str(numtil))
fli = pygame.image.load(files).convert_alpha()
i = 0
while i <= 1000:
tiles.append(fli)
i = i + 1
global TileLen
TileLen = tiles.count(fli)
Game().Game()
def Game(self):
global zomx, zomy, zombie, MMS, step, zombieRect
zombieRect = []
zomx = []
zomy = []
zombie = []
step = 0
HP = 15
Map = pygame.image.load("BG.png").convert()
Map = pygame.transform.scale(Map, (pygame.display.list_modes()[0]))
person = pygame.image.load("Player.png").convert()
person = pygame.transform.scale(person, (30, 30))
dagger = pygame.image.load("Dagger.png").convert_alpha()
dagger = pygame.transform.scale(dagger, (13, 13))
screen.blit(Map, (0, 0))
perx = 800
pery = 700
ai().zombieadd(MMS)
screen.blit(person, (perx, pery))
screen.blit(dagger, (perx+20, pery-5))
global thething
thething = 0
for crap in zombie:
screen.blit(zombie[thething], (zomx[thething], zomy[thething]))
print(thething)
thething = thething + 1
pygame.display.flip()
awesome = 1
fttt = 0
ff = 0
ofx = 0
ofy = 0
while 1:
print(perx, pery)
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
elif event.type == KEYDOWN:
if event.key == K_w:
pery = pery - 5
if fttt != 1:
if awesome == 4:
dagger = pygame.transform.rotate(dagger, 270)
person = pygame.transform.rotate(person, 270)
elif awesome == 3:
dagger = pygame.transform.rotate(dagger, 90)
person = pygame.transform.rotate(person, 90)
elif awesome == 2:
dagger = pygame.transform.rotate(dagger, 180)
person = pygame.transform.rotate(person, 180)
person = pygame.transform.rotate(person, 0)
dagger = pygame.transform.rotate(dagger, 0)
awesome = 1
fttt = 1
elif event.key == K_s:
pery = pery + 5
if fttt != 2:
if awesome == 4:
dagger = pygame.transform.rotate(dagger, 270)
person = pygame.transform.rotate(person, 270)
elif awesome == 3:
dagger = pygame.transform.rotate(dagger, 90)
person = pygame.transform.rotate(person, 90)
person = pygame.transform.rotate(person, 180)
dagger = pygame.transform.rotate(dagger, 180)
awesome = 2
fttt = 2
elif event.key == K_a:
perx = perx - 5
if fttt != 3:
if awesome == 2:
dagger = pygame.transform.rotate(dagger, 180)
person = pygame.transform.rotate(person, 180)
elif awesome == 4:
dagger = pygame.transform.rotate(dagger, 270)
person = pygame.transform.rotate(person, 270)
person = pygame.transform.rotate(person, 270)
dagger = pygame.transform.rotate(dagger, 270)
awesome = 3
fttt = 3
elif event.key == K_d:
perx = perx + 5
if fttt != 4:
if awesome == 2:
dagger = pygame.transform.rotate(dagger, 180)
person = pygame.transform.rotate(person, 180)
elif awesome == 3:
dagger = pygame.transform.rotate(dagger, 90)
person = pygame.transform.rotate(person, 90)
person = pygame.transform.rotate(person, 90)
dagger = pygame.transform.rotate(dagger, 90)
awesome = 4
fttt = 4
elif event.key == K_e:
if awesome == 1:
while ofx >= -6:
ofx = ofx - 1
screen.blit(dagger, (perx+20, pery-5+ofx))
pygame.time.delay(1)
pygame.display.update()
if ofx <= -6:
ofx = 0
elif awesome == 2:
while ofx >= -6:
ofx = ofx - 1
screen.blit(dagger, (perx-5, pery+25-ofx))
pygame.time.delay(1)
pygame.display.update()
if ofx <= -6:
ofx = 0
if awesome == 3:
while ofx >= -6:
ofx = ofx - 1
screen.blit(dagger, (perx-5+ofx, pery-5))
pygame.time.delay(1)
pygame.display.update()
if ofx <= -6:
ofx = 0
if awesome == 4:
while ofx >= -6:
ofx = ofx - 1
screen.blit(dagger, (perx+20-ofx, pery+25))
pygame.time.delay(1)
pygame.display.update()
if ofx <= -6:
ofx = 0
screen.blit(Map, (0, 0))
screen.blit(person, (perx, pery))
if awesome == 1:
screen.blit(dagger, (perx+20, pery-5))
elif awesome == 2:
screen.blit(dagger, (perx-5, pery+25))
elif awesome == 3:
screen.blit(dagger, (perx-5, pery-5))
else:
screen.blit(dagger, (perx+20, pery+25))
text = "Health: "+str(HP)
font = pygame.font.Font(None, 32)
ttex = font.render(text, True, (255, 0, 0))
screen.blit(ttex, (30, 30))
thecrap = 0
while thecrap < thething:
print(thecrap)
screen.blit(zombie[thecrap], (zomx[thecrap], zomy[thecrap]))
if perx >= zomx[thecrap]:
loop = 0
while loop <= 5:
zomx[thecrap] = zomx[thecrap] + .09
loop = loop + 1
if pery >= zomy[thecrap]:
loop = 0
while loop <= 5:
zomy[thecrap] = zomy[thecrap] + .09
loop = loop + 1
if perx <= zomx[thecrap]:
loop = 0
while loop <= 5:
zomx[thecrap] = zomx[thecrap] - .09
loop = loop + 1
if pery <= zomy[thecrap]:
loop = 0
while loop <= 5:
zomy[thecrap] = zomy[thecrap] - .09
loop = loop + 1
if person.get_rect().contains(zombieRect)):
HP = HP - .5
thecrap = thecrap + 1
thecrap = 0
pygame.display.update()
if HP <= 0:
print("Game over! Sorry!")
while 1:
abss = font.render("Sorry, but you lost! Press any key to continue...", True, (255, 255, 255))
pygame.display.update()
screen.blit(abss, (90, 90))
for event in pygame.event.get():
Menu().main()
class ai():
def zombieadd(self, Num):
global zomx, zomy, zombie, zombieRect
zombieRect = []
zombie = []
global step
step = 0
print(Num)
while Num > step:
global zomx, zomy, zombie
print(step)
zomx.append(random.randint(0, 600))
zomy.append(random.randint(0, 600))
zombieI = pygame.image.load("Zombie.png").convert()
zombie.append(zombieI)
zombie[step] = pygame.transform.scale(zombie[step], (30, 30))
print(zomx[step], zomy[step])
zombieRect.append(zombie[step].get_rect())
step = step + 1
Num = 0
return 0
Menu().main()
나는 누군가가 나를 도울 수 있으면 오랫동안 예수님이 그것을 고치신 것처럼 느껴져왔다. 고마워요! – MezuCobalt
"결과를 얻지 못했습니다". 그게 무슨 뜻 이죠? 코드가 오류 메시지를 던지고 있습니까? 단순히 그들이 충돌하지 않는다고 말하는가? 당신은 ** 그들이 ** 충돌하고 있음을 어떻게 압니까? 그리고 우리 프로그램의 모든 514 ** 라인을 실제로 볼 필요가 있습니까? 너무 적은 코드보다 더 많은 코드를 여기에 게시하는 것이 더 좋지만 ** 너무 많이 ** – scohe001
코드가 넘어간 후에도 어디서나 '충돌'호출이 보이지 않습니다! – scohe001