我的一个程序它运行后与我想象中的不符合
import pygame
from pygame import locals
pygame.init()
screen=pygame.display.set_mode((250,250))
pygame.display.set_caption('推箱子')
clock=pygame.time.Clock()
people=pygame.image.load('人.png')
box=pygame.image.load('箱子.png')
dot=pygame.image.load('dot.png')
level=1
# 每关箱子数量x=2**level-1
# 到第四关时箱子数量到达最大15
boxes=1
# boxes_posi=[()]
while True:
screen.fill((255,255,255))
for event in pygame.event.get():
if event.type==locals.QUIT:
exit()
elif event.type==locals.KEYDOWN:
if event.key==locals.K_ESCAPE:
exit()
screen.blit(box,(450,100))
clock.tick(30)
pygame.display.update()
我的想法是 在坐标为(450,100)的位置出现一个大小为50x50的矩形
它的最终运行结果如下所示
你的窗口大小设置的太小了,窗口大小是(250, 250),但是你要把它绘制在(450, 100)处,结果就是绘制到外面去
应更改第6行,将窗口尺寸设置为一个较大的数字,比如:
screen=pygame.display.set_mode((500,250))
【相关推荐】
3.代码实现
class Solution:
#参数nums: 整数数组
#参数target: 要查找的目标数字
#返回值:目标数字的第一个位置,从0开始
def binarySearch(self, nums, target):
return self.search(nums, 0, len(nums) - 1, target)
def search(self, nums, start, end, target):
if start > end:
return -1
mid = (start + end)//2
if nums[mid] > target:
return self.search(nums, start, mid, target)
if nums[mid] == target:
return mid
if nums[mid] < target:
return self.search(nums, mid, end, target)
#主函数
if __name__ == '__main__':
my_solution = Solution()
nums = [1,2,3,4,5,6]
target = 3
targetIndex = my_solution.binarySearch(nums, target)
print("输入:nums =", nums, " ", "target =",target)
print("输出:",targetIndex)
引用 皆我百晓生 小程序回复内容作答:
根据您提供的代码和描述,我注意到在您的程序中,在代码第20行,您加载了一个名为'箱子.png'的图片,并在第30行使用screen.blit()
函数将该图片绘制在屏幕上的坐标(450, 100)处。然而,根据您的描述和期望的结果,您希望绘制一个大小为50x50的矩形。
要绘制一个矩形,您可以使用pygame.draw.rect()
函数。您可以修改程序的代码如下来实现您的期望结果:
import pygame
from pygame import locals
pygame.init()
screen=pygame.display.set_mode((250,250))
pygame.display.set_caption('推箱子')
clock=pygame.time.Clock()
people=pygame.image.load('人.png')
dot=pygame.image.load('dot.png')
level=1
boxes=1
while True:
screen.fill((255,255,255))
for event in pygame.event.get():
if event.type==locals.QUIT:
exit()
elif event.type==locals.KEYDOWN:
if event.key==locals.K_ESCAPE:
exit()
pygame.draw.rect(screen, (0, 0, 255), pygame.Rect(450, 100, 50, 50))
clock.tick(30)
pygame.display.update()
在上述代码中,我删除了您加载的box
图片,然后使用pygame.draw.rect()
函数来绘制一个蓝色(0, 0, 255)的矩形,其左上角坐标为(450, 100),宽度为50,高度为50。
希望这可以帮助到您,让程序输出符合您的期望!