Python 赛道覆盖的地区
每当轨迹到达边缘时,我希望轨迹覆盖的区域填充白色。 而且已经被覆盖的区域也算作边缘Python 赛道覆盖的地区,python,pygame,Python,Pygame,每当轨迹到达边缘时,我希望轨迹覆盖的区域填充白色。 而且已经被覆盖的区域也算作边缘 import pygame, sys WIDTH, HEIGHT = 800, 600 pygame.init() win = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption("Qix") clock = pygame.time.Clock() # Player Class class Playe
import pygame, sys
WIDTH, HEIGHT = 800, 600
pygame.init()
win = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Qix")
clock = pygame.time.Clock()
# Player Class
class Player:
def __init__(self, x, y):
self.x = int(x)
self.y = int(y)
self.rect = pygame.Rect(self.x, self.y, 32, 32)
self.color = (250, 120, 60)
self.velX = 0
self.velY = 0
self.left_pressed = False
self.right_pressed = False
self.up_pressed = False
self.down_pressed = False
self.speed = 6
self.rect.midbottom = self.rect.midbottom
self.trail = []
self.EnterPush = False
self.running = False
self.pos = pygame.Vector2(self.rect.center)
def main(self):
self.update()
self.check_collisons()
def draw(self, win):
pygame.draw.rect(win, self.color, self.rect)
def check_collisons(self):
if self.x >= 760:
self.x = 760
elif self.x <= 0 :
self.x = 0
if self.y >=570:
self.y = 570
elif self.y<=0:
self.y = 0
def update(self):
self.velX = 0
self.velY = 0
if self.left_pressed and not self.right_pressed:
self.velX = -self.speed
if self.right_pressed and not self.left_pressed:
self.velX = self.speed
if self.up_pressed and not self.down_pressed :
self.velY = -self.speed
if self.down_pressed and not self.up_pressed :
self.velY = self.speed
self.x += self.velX
self.y += self.velY
self.rect = pygame.Rect(int(self.x), int(self.y), 32, 32)
pos = self.rect.midbottom
if self.trail:
if self.trail[-1] != pos:
self.trail.append(pos)
else:
self.trail = [pos, pos]
def push(self,win,player):
self.y = 570
while self.running == False:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
self.left_pressed = True
if event.key==pygame.K_RIGHT:
self.right_pressed = True
if event.key == pygame.K_BACKSPACE:
self.running = True
main_game()
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT:
player.left_pressed = False
if event.key == pygame.K_RIGHT:
player.right_pressed = False
win.fill((12, 24, 36))
player.draw(win)
player.main()
pygame.draw.lines(win, (player.color), False, player.trail, 2)
pygame.display.flip()
clock.tick(60)
player = Player(WIDTH / 2, 570)
def main_game():
while player.running== True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
player.left_pressed = True
if event.key == pygame.K_RIGHT:
player.right_pressed = True
if event.key == pygame.K_UP:
player.up_pressed = True
if event.key == pygame.K_DOWN:
player.down_pressed = True
if player.y >= 560:
if event.key == pygame.K_BACKSPACE:
player.running = False
player.push(win,player)
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT:
player.left_pressed = False
if event.key == pygame.K_RIGHT:
player.right_pressed = False
if event.key == pygame.K_UP:
player.up_pressed = False
if event.key == pygame.K_DOWN:
player.down_pressed = False
win.fill((12, 24, 36))
player.draw(win)
player.main()
pygame.draw.lines(win, (player.color), False, player.trail, 2)
pygame.display.flip()
clock.tick(60)
player.push(win,player)
import pygame,sys
宽度,高度=800600
pygame.init()
win=pygame.display.set_模式((宽度、高度))
pygame.display.set_标题(“Qix”)
clock=pygame.time.clock()
#球员级别
职业球员:
定义初始化(self,x,y):
self.x=int(x)
self.y=int(y)
self.rect=pygame.rect(self.x,self.y,32,32)
self.color=(250、120、60)
self.velX=0
self.velY=0
self.left_pressed=False
self.right\u pressed=False
self.up\u pressed=False
self.down\u pressed=False
自身速度=6
self.rect.midbottom=self.rect.midbottom
self.trail=[]
self.EnterPush=False
self.running=False
self.pos=pygame.Vector2(self.rect.center)
def主(自):
self.update()
self.check_collisons()
def抽签(自我,赢):
pygame.draw.rect(win,self.color,self.rect)
def检查碰撞(自):
如果self.x>=760:
self.x=760
elif self.x=570:
self.y=570
elif self.y=560:
如果event.key==pygame.K_退格:
player.running=False
玩家。推(赢,玩家)
如果event.type==pygame.KEYUP:
如果event.key==pygame.K_左:
player.left_pressed=False
如果event.key==pygame.K_RIGHT:
player.right\u pressed=False
如果event.key==pygame.K_UP:
player.up\u按下=错误
如果event.key==pygame.K_向下:
player.down\u按下=错误
胜利填充((12,24,36))
球员。平局(获胜)
player.main()
pygame.draw.lines(赢,(玩家.颜色),假,玩家.轨迹,2)
pygame.display.flip()
时钟滴答(60)
玩家。推(赢,玩家)
您可以阅读此docx文件以获得更好的解释--
我的游戏基于Qix。请提供Oh和解决您的问题。只要找到拐角处的坐标,然后从这些坐标中找出它,也许你可以阅读docx文件,我说的是填充区域,代码是为了让你更容易。我想找到要填充的轨迹之间的区域,现在可以了吗??