Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python游戏球移动_Python_Pygame_Mouse_Draw_Geometry - Fatal编程技术网

Python游戏球移动

Python游戏球移动,python,pygame,mouse,draw,geometry,Python,Pygame,Mouse,Draw,Geometry,我正在写一个简单的“游戏”,我有三个问题要问你: 我怎样才能使所有的球独立地移动 当我用鼠标拖动一个球并在屏幕上单击时,如何使球停留在那里。我想把它画在按下鼠标键的特定坐标上。它必须一直呆在那里 如果一个小球碰到一个大的球,它应该变成一个大的球,10秒后消失 我不知道怎么做。你能帮帮我吗 我的代码: import pygame import sys from pygame.locals import * import random pygame.init() width = 800 heig

我正在写一个简单的“游戏”,我有三个问题要问你:

  • 我怎样才能使所有的球独立地移动
  • 当我用鼠标拖动一个球并在屏幕上单击时,如何使球停留在那里。我想把它画在按下鼠标键的特定坐标上。它必须一直呆在那里
  • 如果一个小球碰到一个大的球,它应该变成一个大的球,10秒后消失 我不知道怎么做。你能帮帮我吗

    我的代码:

    import pygame
    import sys
    from pygame.locals import *
    import random
    
    pygame.init()
    
    width = 800
    height = 600
    
    fps = 25
    clock = pygame.time.Clock()
    
    black = (0, 0, 0)
    white = (255, 255, 255)
    
    display_window = pygame.display.set_mode((width, height))
    pygame.display.set_caption('Bouncy')
    game_over = False
    
    r = random.randint(0, 255)
    g = random.randint(0, 255)
    b = random.randint(0, 255)
    
    x_cor = random.randint(15, width - 15)
    y_cor = random.randint(15, height - 15)
    
    x_change = random.randint(3, 7)
    y_change = random.randint(3, 7)
    
    coordinates = []
    
    for i in range(10):
        x = random.randint(0, width)
        y = random.randint(0, height)
        coordinates.append([x, y])
    
    while not game_over:
    
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()
    
        if event.type == KEYDOWN:
            if event.key == pygame.K_ESCAPE:
                pygame.quit()
                sys.exit()
    
        if event.type == pygame.mouse.get_pressed():
            pass
    
    x_cor += x_change
    y_cor += y_change
    
    display_window.fill(white)
    
    mouse_x, mouse_y = pygame.mouse.get_pos()
    
    for coordinate in coordinates:
        pygame.draw.circle(display_window, (r, g, b), (coordinate[0],    coordinate[1]), 15, 0)
    
    pygame.draw.circle(display_window, black, (mouse_x, mouse_y), 25, 0)
    
    pygame.draw.circle(display_window, (r, g, b), (x_cor, y_cor), 15, 0)
    
    if x_cor > (width - 15) or x_cor < 15:
        x_change = x_change * -1
    if y_cor > (height - 15)or y_cor < 15:
        y_change = y_change * -1
    
    clock.tick(fps)
    pygame.display.update()
    
    导入pygame
    导入系统
    从pygame.locals导入*
    随机输入
    pygame.init()
    宽度=800
    高度=600
    fps=25
    clock=pygame.time.clock()
    黑色=(0,0,0)
    白色=(255,255,255)
    display_window=pygame.display.set_模式((宽度、高度))
    pygame.display.set_标题('Bouncy')
    游戏结束=错误
    r=random.randint(0255)
    g=random.randint(0255)
    b=random.randint(0255)
    x_cor=random.randint(15,宽度-15)
    y_cor=random.randint(15,高度-15)
    x_change=random.randint(3,7)
    y_change=random.randint(3,7)
    坐标=[]
    对于范围(10)内的i:
    x=random.randint(0,宽度)
    y=random.randint(0,高度)
    坐标。追加([x,y])
    虽然游戏尚未结束:
    对于pygame.event.get()中的事件:
    如果event.type==退出:
    pygame.quit()
    sys.exit()
    如果event.type==KEYDOWN:
    如果event.key==pygame.K_退出:
    pygame.quit()
    sys.exit()
    如果event.type==pygame.mouse.get_pressed():
    通过
    x_cor+=x_变化
    y_cor+=y_变化
    显示窗口填充(白色)
    鼠标x,鼠标y=pygame.mouse.get\u pos()
    对于坐标中的坐标:
    pygame.draw.circle(显示窗口,(r,g,b),(坐标[0],坐标[1]),15,0)
    pygame.draw.circle(显示窗口,黑色,(鼠标x,鼠标y),25,0)
    pygame.draw.circle(显示窗口,(r,g,b),(x,y),15,0)
    如果x_cor>(宽度-15)或x_cor<15:
    x_change=x_change*-1
    如果y_cor>(高度-15)或y_cor<15:
    y_change=y_change*-1
    时钟滴答声(fps)
    pygame.display.update()
    
    首先,请在此处发布之前进行必要的研究(请参阅简介教程上的帮助文档)。互联网上有很多教程,在SO(StackOverflow)中有很多关于移动对象的问题。要让您从总体上开始,请执行以下操作:

  • 通过为每个球保留一组单独的坐标,可以独立移动球。在游戏时钟的每次迭代中,你必须重复每个球的新坐标

  • 要使球停留在一个位置,只需不更改其坐标即可

  • 要更改球的大小,请使用较大的半径绘制球。这意味着您还必须记住每个球的半径。给它10秒的寿命,每个球都有一个“寿命”;在游戏时钟的每一个滴答声中递减


  • 基本上,你需要一个对象(制作一个类球);为需要的每个球实例化一个新对象。写下改变每个球的位置、大小和寿命的方法。

    首先,在发布之前做必要的研究(请参阅介绍教程上的帮助文档)。互联网上有很多教程,在SO(StackOverflow)中有很多关于移动对象的问题。要让您从总体上开始,请执行以下操作:

  • 通过为每个球保留一组单独的坐标,可以独立移动球。在游戏时钟的每次迭代中,你必须重复每个球的新坐标

  • 要使球停留在一个位置,只需不更改其坐标即可

  • 要更改球的大小,请使用较大的半径绘制球。这意味着您还必须记住每个球的半径。给它10秒的寿命,每个球都有一个“寿命”;在游戏时钟的每一个滴答声中递减


  • 基本上,你需要一个对象(制作一个类球);为需要的每个球实例化一个新对象。编写更改每个球的位置、大小和寿命的方法。

    欢迎使用StackOverflow。请阅读并遵循帮助文档中的发布指南。适用于这里。在您发布编码并准确描述问题之前,我们无法有效地帮助您。StackOverflow不是编码或教程服务。创建类球以保持球的位置、速度和检查鼠标单击等。您的问题太广泛-答案需要大量代码。欢迎使用StackOverflow。请阅读并遵循帮助文档中的发布指南。适用于这里。在您发布编码并准确描述问题之前,我们无法有效地帮助您。StackOverflow不是编码或教程服务。创建类球以保持球的位置、速度和检查鼠标单击等。您的问题太广泛-答案需要大量代码。