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():
'''
生產(chǎn)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-運氣球
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門婚度,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蘸秘,“玉大人,你說我怎么就攤上這事蝗茁〈茁玻” “怎么了?”我有些...
- 文/不壞的土叔 我叫張陵哮翘,是天一觀的道長灰粮。 經(jīng)常有香客問我,道長忍坷,這世上最難降的妖魔是什么? 我笑而不...
- 正文 為了忘掉前任,我火速辦了婚禮佩研,結(jié)果婚禮上柑肴,老公的妹妹穿的比我還像新娘。我一直安慰自己旬薯,他們只是感情好晰骑,可當(dāng)我...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著绊序,像睡著了一般硕舆。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上骤公,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼垒棋!你這毒婦竟也來了卒煞?” 一聲冷哼從身側(cè)響起,我...
- 正文 年R本政府宣布元潘,位于F島的核電站,受9級特大地震影響君仆,放射性物質(zhì)發(fā)生泄漏翩概。R本人自食惡果不足惜牲距,卻給世界環(huán)境...
- 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望钥庇。 院中可真熱鬧牍鞠,春花似錦、人聲如沸评姨。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽吐句。三九已至胁后,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間嗦枢,已是汗流浹背攀芯。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 在大碗吃面敏储,炸板到二版阻星、首板;讓我熟悉的高手都用最小倉位博個溢價已添,感受市場氛圍的大環(huán)境下妥箕,競走出這么一只欲走趨勢的...
- 什么是運維 術(shù)語名詞 IDC--(Internet Data Center)互聯(lián)網(wǎng)數(shù)據(jù)中心畦幢,主要服務(wù)包括整機租用、...
- 陽城小丑親子營【小小氣球推賣員】進(jìn)行中缆蝉,8月4日下午15:30宇葱,本地頭條陽城小丑親子營(小小氣球推銷員)活動在宇佳...