|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
import random
import pygame
#定义的一些参数
BLOCKSIZE = 30#方块的大小
color = (0,0,0)#背景颜色
#随机生成方块颜色的函数
def getRandomColor():
btcolor = (random.randint(0,255),random.randint(0,255),random.randint(0,255))
return btcolor
bgcolor = color#背景颜色
FPSCLOCK = pygame.time.Clock()#创建clock对象
FPS = 60
#初始化
pygame.init()
#窗口的大小
winset = pygame.display.set_mode((640, 480))
#背景填充颜色
winset.fill(bgcolor)
baseSurf = winset.copy()#将背景复制一遍存一个备份
#窗口标题
pygame.display.set_caption("随鼠标移动的彩色小方块")
x=0.5*(640-BLOCKSIZE)
y=0.5*(480-BLOCKSIZE)
blockRect = pygame.Rect(x,y, BLOCKSIZE, BLOCKSIZE) # 小方块的x,y,width,height
pygame.draw.rect(winset, getRandomColor(), blockRect) # 描绘小方块
pygame.display.update() # 更新之后才能看到新画面
winset.blit(baseSurf, (0, 0))
#游戏主体
while True:
for event in pygame.event.get():#获取用户的事件
if event.type == pygame.KEYDOWN:
print("外循环")
a=0
while 0<=x<=600 and 0<=y<=300 and a<1:
a=0
b=0
print("内循环")
if event.key in (pygame.K_LEFT, pygame.K_a):
for event in pygame.event.get():
print(event)
if event.type == pygame.KEYUP:
a=blockRect.x
b=blockRect.y# 获取用户的事件
print("松开键盘")
a+=1
continue
x -=1
blockRect = pygame.Rect(x, y, BLOCKSIZE, BLOCKSIZE) # 小方块的x,y,width,height
pygame.draw.rect(winset, getRandomColor(), blockRect) # 描绘小方块
pygame.display.update() # 更新之后才能看到新画面
winset.blit(baseSurf, (0, 0)) # 使用原背景覆盖之前的图片
elif event.key in (pygame.K_RIGHT,pygame.K_d):
for event in pygame.event.get():
print(event)
if event.type == pygame.KEYUP:
a=blockRect.x
b=blockRect.y# 获取用户的事件
print("松开键盘")
a+=1
continue
x +=1
blockRect = pygame.Rect(x, y, BLOCKSIZE, BLOCKSIZE) # 小方块的x,y,width,height
print(blockRect.x)
pygame.draw.rect(winset, getRandomColor(), blockRect) # 描绘小方块
pygame.display.update() # 更新之后才能看到新画面
winset.blit(baseSurf, (0, 0)) # 使用原背景覆盖之前的图片
elif event.key in (pygame.K_UP, pygame.K_w):
for event in pygame.event.get():
print(event)
if event.type == pygame.KEYUP:
a=blockRect.x
b=blockRect.y# 获取用户的事件
print("松开键盘")
a+=1
continue
y -= 1
blockRect = pygame.Rect(x, y, BLOCKSIZE, BLOCKSIZE) # 小方块的x,y,width,height
pygame.draw.rect(winset, getRandomColor(), blockRect) # 描绘小方块
pygame.display.update() # 更新之后才能看到新画面
winset.blit(baseSurf, (0, 0)) # 使用原背景覆盖之前的图片
elif event.key in (pygame.K_DOWN, pygame.K_s):
for event in pygame.event.get():
print(event)
if event.type == pygame.KEYUP:
a=blockRect.x
b=blockRect.y# 获取用户的事件
print("松开键盘")
a+=1
continue
y += 1
blockRect = pygame.Rect(x, y, BLOCKSIZE, BLOCKSIZE) # 小方块的x,y,width,height
pygame.draw.rect(winset, getRandomColor(), blockRect) # 描绘小方块
pygame.display.update() # 更新之后才能看到新画面
winset.blit(baseSurf, (0, 0)) # 使用原背景覆盖之前的图片
elif event.key == pygame.K_ESCAPE:
pygame.quit() # 退出
exit() # 正确退出
print(x, y)
x = a
print(x, y)
if x == -1:
x += 1
elif x == 609:
x -= 1
elif y == -1:
y += 1
elif y == 301:
y -= 1
elif x == -1 and y == -1:
x += 1
y += 1
elif x == 609 and y == -1:
x -= 1
y += 1
elif y == 301 and x == -1:
y -= 1
x += 1
elif y == 301 and x == 609:
y -= 1
x -= 1
print(x, y)
#控制帧率
FPSCLOCK.tick(30)
效果错误:方块靠右就直接跳到最左边了。
我将x=a这个多余步骤删除就完成了解决,谢谢指教
|
|