import pygame, sys, random, math, os
from random import randint, uniform
from pygame.locals import*
from locations import*
pygame.init()
brick=pygame.image.load("resources/images/brick.png")
cave_block=pygame.image.load("resources/images/cave_block1.jpg")
background=pygame.image.load("resources/images/bg.png")
player_img=pygame.image.load("resources/images/spaceship.png")
screenX=1024
screenY=768
screen=pygame.display.set_mode((screenX,screenY))
clock=pygame.time.Clock()
game=True
block_top=0
block_bottom=0
block_left=0
make_top=[(0,0)]
make_bottom=[(0,704)]
make_left=[(0,64)]
cave_top=0
make_cave_top=[(0,0)]
move_playerU=False
move_playerL=False
move_playerD=False
move_playerR=False
cave=[(640,400)]
backgrounS_pos=([0,0])
player_imgS_pos=([512,384])
我要更改的列表,它们是将图像变薄的位置。
将这些列表保存在另一个文件中并在仍可更改的同时从那里读取也是很好的。
cave_block1S_pos=([(0,0),(32,0),(64,0),(96,0),(128,0),(160,0),(192,0),(224,0),(256,0),(288,0),(320,0),(352,0),(384,0),(416,0),(448,0),(480,0),(512,0),(544,0),(576,0),(608,0),(640,0),(672,0),(704,0),(736,0),(768,0),(800,0),(832,0),(864,0),(896,0),(928,0),(960,0),(992,0),(1024,0)])
cave_block2S_pos=([(0,736),(32,736),(64,736),(96,736),(128,736),(160,736),(192,736),(224,736),(256,736),(288,736),(320,736),(352,736),(384,736),(416,736),(448,736),(480,736),(512,736),(544,736),(576,736),(608,736),(640,736),(672,736),(704,736),(736,736),(768,736),(800,736),(832,736),(864,736),(896,736),(928,736),(960,736),(992,736),(1024,736)])
cave_block3S_pos=([(0,0),(0,32),(0,64),(0,96),(0,128),(0,160),(0,192),(0,224),(0,256),(0,288),(0,320),(0,352),(0,384),(0,416),(0,448),(0,480),(0,512),(0,544),(0,576),(0,608),(0,640),(0,672),(0,704),(0,736),(0,768)])
while game:
clock.tick(30)
screen.blit(background,(backgrounS_pos))
screen.blit(player_img,(player_imgS_pos))
我在尝试更改列表的值。
for blocks in cave_block1S_pos:
screen.blit(cave_block,blocks)
if move_playerR==True:
cave_block1S_pos[0]-=5
for blocks in cave_block2S_pos:
screen.blit(cave_block,blocks)
for blocks in cave_block3S_pos:
screen.blit(cave_block,blocks)
#cave.append([random.randint(player_imgS_pos[0]-512,player_imgS_pos[1]+684), random.randint(player_imgS_pos[0]-512,player_imgS_pos[0]+384)])
#for rocks in cave:
#screen.blit(cave_block, rocks)
#if move_playerR==True:
#rocks[0]+=5
if backgrounS_pos[0]>=32:
backgrounS_pos[0]=32
if backgrounS_pos[0]<=-905:
backgrounS_pos[0]=-905
if backgrounS_pos[1]>=32:
backgrounS_pos[1]=32
if backgrounS_pos[1]<=-470:
backgrounS_pos[1]=-470
if move_playerR==True:
backgrounS_pos[0]-=5
if move_playerL==True:
backgrounS_pos[0]+=5
if move_playerD==True:
backgrounS_pos[1]-=5
if move_playerU==True:
backgrounS_pos[1]+=5
print(backgrounS_pos)
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key==K_ESCAPE:
pygame.quit()
exit(0)
if event.key==K_w:
move_playerU=True
if event.key==K_a:
move_playerL=True
if event.key==K_s:
move_playerD=True
if event.key==K_d:
move_playerR=True
if event.type==pygame.KEYUP:
if event.key==K_w:
move_playerU=False
if event.key==K_a:
move_playerL=False
if event.key==K_s:
move_playerD=False
if event.key==K_d:
move_playerR=False
if event.type==pygame.QUIT:
pygame.quit
exit(0)
pygame.display.update()
cave_block1S_pos[0] -= 5
与cave_block1S_pos[0] = cave_block1S_pos[0] - 5
您的情况相同cave_block1S_pos[0] = (0, 0) - 5
。您不能从元组中减去5,因此会出现错误TypeError: unsupported operand type(s) for -=: 'tuple' and 'int'
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句