美文网首页
2018-09-05-运气球

2018-09-05-运气球

作者: oxd001 | 来源:发表于2018-09-06 20:55 被阅读0次
import pygame
import my_color
from random import randint
from time import sleep
game_width=600
game_height=400
all_balls=[]
# main_ball={}
key_ball_center = 'ball_center'
key_ball_color = 'ball_color'
key_ball_radius = 'ball_radius'
key_ball_xspeed = 'ball_xspeed'
key_ball_yspeed = 'ball_yspeed'
key_ball_class = 'ball_class'



def ball_crash(main_ball):
    x1,y1=main_ball[key_ball_center]
    r1=main_ball[key_ball_radius]

    for ball in all_balls:
        if main_ball!=ball:
            x2,y2=ball[key_ball_center]
            r2=ball[key_ball_radius]
            if (x2-x1)**2+(y2-y1)**2<=(r1+r2)**2:
                if ball[key_ball_class]==2:
                    main_ball[key_ball_radius]=r1-1
                elif ball[key_ball_class]==1:
                    main_ball[key_ball_radius]=r1+1
                dead = 0
                ball[key_ball_class]=dead
                for ball2 in all_balls:
                    radius = ball2[key_ball_radius]
                    if main_ball!=ball2:
                        if ball2[key_ball_class]!=0:
                            if radius-1>0:
                                ball2[key_ball_radius]=radius - 1


def move_ball(main_ball):
    
    # print(main_ball)
    if main_ball:

        x,y = main_ball[key_ball_center]
        x +=main_ball[key_ball_xspeed]
        y +=main_ball[key_ball_yspeed]
        radius = main_ball[key_ball_radius]
        if x+radius>game_width:
            x = game_width-radius
        elif x < radius:
            x=radius
        if y+radius>game_height:
            y=game_height-radius
        elif y<radius:
            y=radius

        main_ball[key_ball_center]=(x,y)


def draw_ball(window):
    if all_balls:
        for ball in all_balls:
            if ball[key_ball_class]==0:
                all_balls.remove(ball)
            pygame.draw.circle(window,
                ball[key_ball_color],
                ball[key_ball_center],
                ball[key_ball_radius])
        pygame.display.update()
        window.fill(my_color.white)
        sleep(0.01)


def rand_pos():
    '''
    生成随机的位置和半径
    '''
    radius = randint(5,10)
    x = randint(radius,game_width-radius)
    y = randint(radius,game_height-radius)

    return radius,x,y
    
def create_balls():
    '''
    生产ball
    '''
    radius,x,y = rand_pos()
    color = my_color.rand_color()
    xspeed = 0
    yspeed = 0
    flag = [1,2][randint(0,1)]
    ball={
    key_ball_color:color,
    key_ball_center:(x,y),
    key_ball_radius:radius,
    key_ball_xspeed:xspeed,
    key_ball_yspeed:yspeed,
    key_ball_class:flag

    }
    all_balls.append(ball)


def main_page():
    pygame.init()
    window = pygame.display.set_mode((game_width,game_height))
    window.fill(my_color.white)
    create_balls()
    main_ball = all_balls[0]
    pygame.display.flip()
    while True:
        if len(all_balls)<=20:
            create_balls()
        draw_ball(window)

        move_ball(main_ball)
        ball_crash(main_ball)
        # print(main_ball)
        all_balls[0]=main_ball
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                exit(0)
            if event.type == pygame.KEYDOWN:
                
                if event.key == 273:

                    main_ball[key_ball_xspeed]=0
                    main_ball[key_ball_yspeed]=-2
                if event.key == 274:
                    main_ball[key_ball_xspeed]=0
                    main_ball[key_ball_yspeed]=2
                if event.key == 275:
                    main_ball[key_ball_xspeed]=2
                    main_ball[key_ball_yspeed]=0
                if event.key == 276:
                    main_ball[key_ball_xspeed]=-2
                    main_ball[key_ball_yspeed]=0

if __name__ == '__main__':
    main_page()
    

相关文章

  • 2018-09-05-运气球

  • 气球🎈气球🎈

    好看吧!这五彩缤纷的气球 两个年轻人拿着,像是一对情侣,从大街上走过,像飘来两大团云! 感觉这两团云又要飞起来,飞...

  • 2018-09-05-学生管理系统

    1,主页面函数(01-mainpage.py) 2,学生系统函数(student_system.py) 3,自定义...

  • 简年4:睡前对话

    “气球气球,你的杆杆到哪去了?……你弄丢了么?我帮你找找好么……” “气球气球,你在听我说话吗?……气球气球,你为...

  • 南京气球-开学系列

    南京靓点礼仪拥有丰富的气球装饰制作经验,能够根据客户的要求制作各式气球装饰造型、 氦气球放飞、气球拱门、专业气球主...

  • 绘本讲师训练营【31期】18/21实践原创5《气球小熊》

    31005 薛玲 用手比划大气球小气球的游戏开场,“大气球”我和孩子们用手势比划个大大的气球,“小气球”我们同时...

  • 家人就是开涮(八)

    “来,这个气球给你玩,”大家弄好所有的气球离开时给了前面孩子一个气球。 “阳,你拿气球远点,我怕气球的很。你们拿出...

  • 颜祺峻.每日一画D15

    心形气球,小鸟气球...

  • 拍气球

    今天晚上,我和弟弟吹气球,我们比赛谁吹的气球多谁就赢。弟弟吹了2个气球,我吹了5个气球。接下来,我们来拍气球,我们...

  • 压力

    或许,可以这样说,压力是气体,人是气球,气体不断进入气球,气球不断膨大,直到,气球爆炸。 呵 ,真好,以后再也不...

网友评论

      本文标题:2018-09-05-运气球

      本文链接:https://www.haomeiwen.com/subject/tydfgftx.html