五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

隕石掉落,從零開始用Python制作飛機(jī)大戰(zhàn)【教程第4集】

2023-08-20 00:20 作者:我真帥啊kk  | 我要投稿

'''編完之后回頭看有看不懂代碼的意義?來看看我的加注釋版吧,標(biāo)記了各個代碼的意義,如有問題敬請指出'''

# Time : 2023/6/30 22:08

# !/user/bin/env python3

# -*- coding: utf-8 -*-

import random


import pygame # 導(dǎo)入pygame庫


# 定義常量

WIDTH = 500 # 窗口的寬

HEIGHT = 600 # 窗口的高

WHITE = (255, 255, 255) # 白色RGB常量

GREEN = (0, 255, 0) # 綠色RGB常量

RED = (255, 0, 0) # 紅石RGB常量


# 游戲初始化

pygame.init() # 初始化函數(shù)

screen = pygame.display.set_mode((WIDTH, HEIGHT)) # 設(shè)置界面寬高

pygame.display.set_caption('飛機(jī)大戰(zhàn)(plane_war)') # 設(shè)置標(biāo)題

clock = pygame.time.Clock() # 創(chuàng)建時鐘對象



class Player(pygame.sprite.Sprite): # 創(chuàng)建玩家類

def __init__(self): # 初始化函數(shù)

pygame.sprite.Sprite.__init__(self)

self.image = pygame.Surface((50, 40)) # 將角色設(shè)置成一個長方形

self.image.fill(GREEN) # 填充顏色


self.rect = self.image.get_rect() # 獲得輪廓

self.rect.centerx = WIDTH / 2 # 設(shè)置x中心

self.rect.bottom = HEIGHT - 20 # 底部坐標(biāo)


self.speedx = 8 # 設(shè)置x速度


def update(self): # 位置更新

key_pressed = pygame.key.get_pressed() # 鍵狀態(tài)的列表

if key_pressed[pygame.K_RIGHT] or key_pressed[pygame.K_d]: # 按下右方向鍵向右移動

self.rect.x += self.speedx


if key_pressed[pygame.K_LEFT] or key_pressed[pygame.K_a]: # 按下左方向鍵向左移動

self.rect.x -= self.speedx


if self.rect.right > WIDTH: # 檢測是否超過右邊緣

self.rect.right = WIDTH # 條件達(dá)成則回到右邊緣


if self.rect.left < 0: # 檢測是否超過左邊緣

self.rect.left = 0 # 條件達(dá)成則回到左邊緣



class Rock(pygame.sprite.Sprite): # 創(chuàng)建隕石 類

def __init__(self): # 初始化函數(shù)

pygame.sprite.Sprite.__init__(self)

self.image = pygame.Surface((30, 30)) # 將角色設(shè)置成一個長方形

self.image.fill(RED) # 填充顏色


self.rect = self.image.get_rect() # 獲得輪廓

self.rect.x = random.randrange(0, WIDTH - self.rect.width) # 設(shè)置隕石掉下來的x

self.rect.y = random.randrange(-100, -40) # 設(shè)置隕石初始y


self.speedy = random.randrange(2, 10) # 隨機(jī)設(shè)置掉下速度

self.speedx = random.randrange(-3, 3) # 隨機(jī)左右移動


def update(self): # 位置更新

self.rect.y += self.speedy # 隕石不斷增加y坐標(biāo)

self.rect.x += self.speedx # 隕石不斷更新x坐標(biāo)

if self.rect.top > WIDTH or self.rect.left > WIDTH or self.rect.right < 0: # 判斷輪廓超出邊緣就重新回到上面

self.rect.x = random.randrange(0, WIDTH - self.rect.width) # 設(shè)置隕石掉下來的x

self.rect.y = random.randrange(-100, -40) # 設(shè)置隕石初始y


self.speedy = random.randrange(2, 10) # 隨機(jī)設(shè)置掉下速度

self.speedx = random.randrange(-3, 3) # 隨機(jī)左右移動



all_sprites = pygame.sprite.Group() # 創(chuàng)建角色表

player = Player() # 創(chuàng)建玩家類對象

all_sprites.add(player) # 將創(chuàng)建的玩家類對象放入角色列表


for item in range(25): # 循環(huán)25次

rock = Rock() # 創(chuàng)建隕石對象

all_sprites.add(rock) # add:增加,將隕石對象加進(jìn)角色列表


running = True # 定義工具變量用于控制循環(huán)

while running: # 主循環(huán),循環(huán)至關(guān)閉窗口


clock.tick(60) # 設(shè)置幀數(shù)


for event in pygame.event.get(): # 獲取事件

if event.type == pygame.QUIT: # 判斷是否為事件

running = False # 如果是,則將變量設(shè)為False,停止循環(huán)


all_sprites.update() # 調(diào)用角色池里面的位置更新方法


screen.fill(WHITE) # 設(shè)置窗口界面顏色,顯示畫面


all_sprites.draw(screen) # 繪制角色


pygame.display.update() # 更新狀態(tài)


pygame.quit() # 退出


隕石掉落,從零開始用Python制作飛機(jī)大戰(zhàn)【教程第4集】的評論 (共 條)

分享到微博請遵守國家法律
衡山县| 凌海市| 汝州市| 湟中县| 涞源县| 金华市| 丽水市| 大田县| 灵石县| 临西县| 锡林郭勒盟| 江山市| 巴彦县| 安陆市| 绥芬河市| 安新县| 仁布县| 昭通市| 南平市| 紫金县| 磐石市| 聂拉木县| 鹤山市| 扎赉特旗| 民乐县| 平顶山市| 万全县| 威海市| 玛多县| 日照市| 年辖:市辖区| 三门峡市| 沁水县| 婺源县| 滁州市| 牡丹江市| 太仓市| 延边| 如皋市| 宜良县| 台中县|