【pygame遊戲開發】這幾個經典遊戲,勾起了少年的快樂
def GamingInterface(num_player, screen):
# 初始化
pygame.mixer.music.load(cfg.SOUNDPATHS['Cool Space Music'])
pygame.mixer.music.set_volume(0.4)
pygame.mixer.music.play(-1)
explosion_sound = pygame.mixer.Sound(cfg.SOUNDPATHS['boom'])
fire_sound = pygame.mixer.Sound(cfg.SOUNDPATHS['shot'])
font = pygame.font.Font(cfg.FONTPATH, 20)
# 遊戲背景圖
bg_imgs = [cfg.IMAGEPATHS['bg_big'], cfg.IMAGEPATHS['seamless_space'], cfg.IMAGEPATHS['space3']]
bg_move_dis = 0
bg_1 = pygame.image.load(bg_imgs[0]).convert()
bg_2 = pygame.image.load(bg_imgs[1]).convert()
bg_3 = pygame.image.load(bg_imgs[2]).convert()
# 玩家 , 和小行星精靈組
player_group = pygame.sprite.Group()
bullet_group = pygame.sprite.Group()
asteroid_group = pygame.sprite.Group()
# 產生小行星的時間間隔
asteroid_ticks = 90
for i in range(num_player):
player_group.add(Ship(i+1, cfg))
clock = pygame.time.Clock()
# 分數
score_1, score_2 = 0, 0
# 遊戲主迴圈
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
# -- 玩家一 : ↑↓←→控制 , j 射擊 ; 玩家二 : wsad 控制 , 空格射擊
pressed_keys 外匯跟單gendan5.com= pygame.key.get_pressed()
for idx, player in enumerate(player_group):
direction = None
if idx == 0:
if pressed_keys[pygame.K_UP]:
direction = 'up'
elif pressed_keys[pygame.K_DOWN]:
direction = 'down'
elif pressed_keys[pygame.K_LEFT]:
direction = 'left'
elif pressed_keys[pygame.K_RIGHT]:
direction = 'right'
if direction:
player.move(direction)
if pressed_keys[pygame.K_j]:
if player.cooling_time == 0:
fire_sound.play()
bullet_group.add(player.shot())
player.cooling_time = 20
elif idx == 1:
if pressed_keys[pygame.K_w]:
direction = 'up'
elif pressed_keys[pygame.K_s]:
direction = 'down'
elif pressed_keys[pygame.K_a]:
direction = 'left'
elif pressed_keys[pygame.K_d]:
direction = 'right'
if direction:
player.move(direction)
if pressed_keys[pygame.K_SPACE]:
if player.cooling_time == 0:
fire_sound.play()
bullet_group.add(player.shot())
player.cooling_time = 20
if player.cooling_time > 0:
player.cooling_time -= 1
if (score_1 + score_2) < 500:
background = bg_1
elif (score_1 + score_2) < 1500:
background = bg_2
else:
background = bg_3
# -- 向下移動背景圖實現飛船向上移動的效果
screen.blit(background, (0, -background.get_rect().height + bg_move_dis))
screen.blit(background, (0, bg_move_dis))
bg_move_dis = (bg_move_dis + 2) % background.get_rect().height
# -- 生成小行星
if asteroid_ticks == 0:
asteroid_ticks = 90
asteroid_group.add(Asteroid(cfg))
else:
asteroid_ticks -= 1
# -- 畫飛船
for player in player_group:
if pygame.sprite.spritecollide(player, asteroid_group, True, None):
player.explode_step = 1
explosion_sound.play()
elif player.explode_step > 0:
if player.explode_step > 3:
player_group.remove(player)
if len(player_group) == 0:
return
else:
player.explode(screen)
else:
player.draw(screen)
# -- 畫
for bullet in bullet_group:
bullet.move()
if pygame.sprite.spritecollide(bullet, asteroid_group, True, None):
bullet_group.remove(bullet)
if bullet.player_idx == 1:
score_1 += 1
else:
score_2 += 1
else:
bullet.draw(screen)
# -- 畫小行星
for asteroid in asteroid_group:
asteroid.move()
asteroid.rotate()
asteroid.draw(screen)
# -- 顯示分數
score_1_text = ' 玩家一得分 : %s' % score_1
score_2_text = ' 玩家二得分 : %s' % score_2
text_1 = font.render(score_1_text, True, (0, 0, 255))
text_2 = font.render(score_2_text, True, (255, 0, 0))
screen.blit(text_1, (2, 5))
screen.blit(text_2, (2, 35))
# -- 螢幕重新整理
pygame.display.update()
clock.tick(60)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946337/viewspace-2868704/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- pygame開發小遊戲GAM遊戲
- 遊戲開發者依然能從這7款經典街機遊戲中汲取經驗遊戲開發
- 一個bug造就的經典遊戲....遊戲
- Python遊戲開發!Mac完美安裝pygamePython遊戲開發MacGAM
- Python遊戲開發工程師的起步,幾款遊戲開發案例Python遊戲開發工程師
- Steam 是暢玩遊戲、討論遊戲、創造遊戲的快樂所在遊戲
- 在這款模擬遊戲裡,做一個快樂的農民遊戲
- 經典遊戲:吃豆人遊戲
- 遊戲設計-遊戲快樂知多少(四) ?-驚喜遊戲設計
- Bash 學習的快樂之旅:3 個命令列遊戲命令列遊戲
- 經典老遊戲,在獨立開發者手中復甦遊戲
- Mac經典戰略策略遊戲:Mac遊戲
- 經典掃雷遊戲Web版遊戲Web
- 建築&遊戲 | 對經典遊戲地圖的空間淺析遊戲地圖
- 買這家公司的遊戲,還不如買兩瓶快樂水?遊戲
- win10電腦如何玩經典老遊戲 win10執行經典遊戲的步驟Win10遊戲
- 製作遊戲的遊戲:創作樂趣的樂趣遊戲
- 暴雪全家桶·經典遊戲回顧遊戲
- 來之不易的經典旋律:當年的遊戲音樂是如何打造的?遊戲
- 玩遊戲不就是為了快樂嗎? 為何要在《只狼》這種遊戲裡受虐?遊戲
- “推理探案+模擬經營”,這個4人遊戲團隊這麼設計遊戲!遊戲
- 一個套路,讓你設計出經典款遊戲遊戲
- 在 Pygame 遊戲中放置平臺GAM遊戲
- Python遊戲開發:Pygame的執行環境|案例執行與分析Python遊戲開發GAM
- 《遊戲王OCG》的20年——經典桌遊的“成神”之路遊戲
- 50歲的遊戲人葉明璋——沒有比開發遊戲更快樂的事情了開發遊戲
- LiteracyTrust:近80%的青少年遊戲玩家每月閱讀遊戲材料Rust遊戲
- 遊戲開發入門(一)遊戲開發概述遊戲開發
- 如果宮鬥遊戲玩起了換裝遊戲
- 遊戲的無障礙之戰:讓快樂屬於每個人遊戲
- NFT遊戲系統開發/遊戲開發技術遊戲開發
- 遊戲開發中遊戲效能的最佳化遊戲開發
- 從經典遊戲中學到的7個伏筆設計技巧遊戲
- 使用 Python 和 Pygame 模組構建一個遊戲框架PythonGAM遊戲框架
- 用於遊戲開發的圖形和音樂工具遊戲開發
- 科樂美經典之作再現 國內首家遊戲王旗艦公認店開業遊戲
- 經典遊戲伺服器端架構概述遊戲伺服器架構
- 【刷遊戲開發面經記錄】2遊戲開發