最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python pygame實(shí)現(xiàn)球球大作戰(zhàn)

 更新時(shí)間:2019年11月25日 14:22:39   作者:人生仿若單程旅行  
這篇文章主要為大家詳細(xì)介紹了Python pygame實(shí)現(xiàn)球球大作戰(zhàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了python pygame球球大作戰(zhàn)的具體代碼,供大家參考,具體內(nèi)容如下

球球大作戰(zhàn):(大球吃小球,代碼如下:)

from random import randint,randrange
import pygame
from math import sqrt,pi


class Ball(object):
  def __init__(self, center, color, radius, sx, sy):
    self._center = center
    self._color = color
    self._radius = radius
    self._sx = sx
    self._sy = sy

  @property
  def center(self):
    return self._center

  @property
  def radius(self):
    return self._radius

  @radius.setter
  def radius(self,radius):
    self._radius = radius

  def move(self):
    x, y = self._center[0], self._center[1]
    x += self._sx
    y += self._sy
    self._center = (x, y)
    # if x + self._radius > 800:
    #   self._sx = -abs(self._sx)
    # elif x + self._radius < 0:
    #   self._sx = abs(self._sx)
    # elif y +self._radius > 800:
    #   self._sy = -abs(self._sy)
    # elif y +self._radius < 0:
    #   self._sy = abs(self._sy)
    if x + self._radius >= 800 or x - self._radius <= 0 or x <= 0:
      self._sx = -self._sx
    if y +self._radius >= 800 or y - self._radius <= 0 or y <= 0:
      self._sy = -self._sy

  def draw(self,screen):
    pygame.draw.circle(screen, self._color, self._center, self._radius, 0)

  def eat(self, other):
    a = sqrt((self._center[0] - other.center[0]) ** 2 + (self._center[1] - other.center[1]) ** 2)
    if a < self._radius + other.radius and self._radius < other.radius:
      other.radius = self._radius + other.radius
      self.radius = 0
    elif a < self._radius + other.radius and self._radius > other.radius:
      self._radius = self._radius + other.radius
      other.radius = 0


def main():
  balls = []
  pygame.init()
  screen = pygame.display.set_mode([800,800])
  pygame.display.set_caption('大球吃小球')
  c = pygame.time.Clock()
  running = True
  while running:
    for event in pygame.event.get():
      if event.type == pygame.QUIT:
        running = False
      elif event.type == pygame.MOUSEBUTTONDOWN and \
         event.button == 1:
        color = random_color()
        radius = randint(10,100)
        sx, sy = randint(-10,10), randint(-10,10)
        ball = Ball(event.pos, color, radius, sx, sy)
        balls.append(ball)
    refresh(screen,balls)
    c.tick(20) # 50幀
    for ball in balls:
      ball.move()
    balls_len = len(balls)
    for i in range(balls_len):
      for x in range(balls_len):
        balls[i].eat(balls[x])
    for ball in balls:
      if ball.radius == 0:
        balls.remove(ball)


  pygame.quit()


def refresh(screen,balls):
  bg_color = [255, 255, 255]
  screen.fill(bg_color)
  for ball in balls:
    ball.draw(screen)
  pygame.display.flip()


def random_color():
  return [randint(1,255), randint(1,255), randint(1,255)]


if __name__ == '__main__':
  main()

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 用Python實(shí)現(xiàn)給Word文檔蓋章

    用Python實(shí)現(xiàn)給Word文檔蓋章

    大家好,本篇文章主要講的是用Python實(shí)現(xiàn)給Word文檔蓋章,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-02-02
  • 如何獲取numpy的第一個(gè)非0元素索引

    如何獲取numpy的第一個(gè)非0元素索引

    這篇文章主要介紹了如何獲取numpy的第一個(gè)非0元素索引,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • wxpython中Textctrl回車事件無(wú)效的解決方法

    wxpython中Textctrl回車事件無(wú)效的解決方法

    這篇文章主要介紹了wxpython中Textctrl回車事件無(wú)效的解決方法,較為詳細(xì)的分析了TextCtrl支持的事件類型,并給出了TextCtrl綁定回車事件的相應(yīng)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2016-07-07
  • 快速解決安裝python沒(méi)有scripts文件夾的問(wèn)題

    快速解決安裝python沒(méi)有scripts文件夾的問(wèn)題

    下面小編就為大家分享一篇快速解決安裝python沒(méi)有scripts文件夾的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • Python API 操作Hadoop hdfs詳解

    Python API 操作Hadoop hdfs詳解

    這篇文章主要介紹了Python API 操作Hadoop hdfs詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • python針對(duì)excel的操作技巧

    python針對(duì)excel的操作技巧

    這篇文章主要介紹了python針對(duì)excel的操作方法,需要的朋友可以參考下
    2018-03-03
  • Python3第三方模塊之Pillow模塊的使用詳解

    Python3第三方模塊之Pillow模塊的使用詳解

    這篇文章主要介紹了Python3第三方模塊之Pillow模塊的使用詳解,在 pillow之前處理圖形的庫(kù)莫過(guò)于PIL,但是它支持到python2.7,年久失修,于是一群志愿者在PIL的基礎(chǔ)上常見(jiàn)了pillow,支持python3,又豐富和功能特性,需要的朋友可以參考下
    2023-10-10
  • Keras 數(shù)據(jù)增強(qiáng)ImageDataGenerator多輸入多輸出實(shí)例

    Keras 數(shù)據(jù)增強(qiáng)ImageDataGenerator多輸入多輸出實(shí)例

    這篇文章主要介紹了Keras 數(shù)據(jù)增強(qiáng)ImageDataGenerator多輸入多輸出實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-07-07
  • Python 解析xml文件的示例

    Python 解析xml文件的示例

    這篇文章主要介紹了Python 解析xml文件的示例,幫助大家更好的利用python處理文件,感興趣的朋友可以了解下
    2020-09-09
  • python微信公眾號(hào)之關(guān)鍵詞自動(dòng)回復(fù)

    python微信公眾號(hào)之關(guān)鍵詞自動(dòng)回復(fù)

    這篇文章主要為大家詳細(xì)介紹了python微信公眾號(hào)之關(guān)鍵詞自動(dòng)回復(fù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06

最新評(píng)論

长春市| 沁阳市| 温州市| 龙口市| 福泉市| 新乡市| 隆林| 敦化市| 陵水| 隆德县| 齐河县| 湘乡市| 阿瓦提县| 和静县| 芒康县| 太仆寺旗| 晋江市| 冷水江市| 景德镇市| 堆龙德庆县| 石棉县| 巫溪县| 友谊县| 邢台县| 天全县| 新巴尔虎左旗| 柳江县| 南涧| 宜宾县| 大同县| 游戏| 睢宁县| 梅州市| 怀远县| 孟村| 汤阴县| 宜州市| 曲松县| 达州市| 独山县| 大足县|