import os import sys import time import pygame import random WIDTH = 500 HEIGHT = 500 NUMGRID = 8 GRIDSIZE = 50 XMARGIN= (WIDTH - GRIDSIZE * NUMGRID) //2 YMARGIN = (HEIGHT - GRIDSIZE * NUMGRID) // 2 x_animal=XMARGIN y_animal=YMARGIN ROOTDIR = os.getcwd() FPS = 100 clock=pygame.time.Clock() pygame.init() screen = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption('消消乐') screen.fill((255, 255, 220)) path_list=[] # 游戏界面的网格绘制 def drawBlock(block, color=(255, 0, 0), size=2): pygame.draw.rect(screen, color, block, size) for x in range(NUMGRID): for y in range(NUMGRID): rect = pygame.Rect((XMARGIN + x * GRIDSIZE, YMARGIN + y * GRIDSIZE, GRIDSIZE, GRIDSIZE)) drawBlock(rect, color=(255, 165, 0), size=1) class animal(pygame.sprite.Sprite): def __init__(self,screen): pygame.sprite.Sprite.__init__(self) self.screen=screen im_path = os.listdir('source') path_list.append([]) global x_animal global y_animal self.positon_rect = pygame.Rect((x_animal,y_animal, GRIDSIZE, GRIDSIZE)) path = random.choice(im_path) self.image = pygame.image.load('source/' + path) self.rect = self.image.get_rect() screen.blit(self.image, (self.positon_rect.x + 1,self.positon_rect.y)) y_animal+=GRIDSIZE if y_animal>8*GRIDSIZE: x_animal=x_animal+GRIDSIZE y_animal=YMARGIN def move(self): for i in range(50): screen.fill((255, 255, 220)) for x in range(NUMGRID): for y in range(NUMGRID): rect = pygame.Rect((XMARGIN + x * GRIDSIZE, YMARGIN + y * GRIDSIZE, GRIDSIZE, GRIDSIZE)) drawBlock(rect, color=(255, 165, 0), size=1) for i in range(64): screen.blit(animal_d['animal'+str(i)].image,animal_d['animal'+str(i)].positon_rect) self.positon_rect.move_ip(1,0) screen.blit(self.image,self.positon_rect)
时间: 2024-04-01 20:36:13 浏览: 65
导致python中import错误的原因是什么
这段代码有几个问题,可能导致程序无法正常执行:
1.在第一行import语句中,需要在每个模块名之间添加逗号。
2.在第10行到12行的代码中,x_animal和y_animal是全局变量,但在函数内部使用时并没有声明global关键字,可能会导致变量不可用或者出现命名错误。
3.在第14行到24行的代码中,代码缺少缩进,可能会导致语法错误。
4.在第25行到34行的代码中,animal类的move()方法中的循环次数是50,而在循环内部又有64次blit操作,可能会导致程序运行过慢或者出现卡顿。
5.在第32行的代码中,self.positon_rect.move_ip(1,0)只能使小动物向右移动,如果要实现其他方向的移动,需要根据具体情况修改参数。
6.在第33行的代码中,self.image应该使用self.image.copy(),否则会导致小动物在移动时出现拖影。
建议你逐行检查代码并进行适当修改,以确保程序能够正常执行。
阅读全文