pygame学習(2) - 線、円、長方形、その他のパターンの描画

導入

pygame は、ゲーム開発に特に使用されるクロスプラットフォーム Python ライブラリ (pygame news) です。Pygame は主に 2D 電子ゲームの開発と設計のために設計されており、画像モジュール (イメージ)、サウンド モジュール (ミキサー)、入出力 (マウス、キーボード、ディスプレイ) モジュールなどを提供します。pygame を使用すると、理論的には市場にあるすべての 2D ゲームを開発および設計できます。

 文章

1. 線を引く 

pygame.draw.line()関数を使用して直線を描くことができます。

pygame.draw.line (画面、線分色、始点座標、終点座標、線幅)

pygame.draw.line(画面、ライトグリーン、(300,0)、(300,600)、線幅)

import pygame #导包
from pygame.locals import*
import sys

black=0,0,0
lightgreen=144,238,144

pygame.init() #初始化
screen = pygame.display.set_mode(size=(600,600),flags=0)
#绘制一个600*600的框框


while True:
    for event in pygame.event.get():
        if event.type in (QUIT,KEYDOWN):
            sys.exit()#python的退出程序

    linewidth=4 #“线”的粗细
    pygame.draw.line(screen,lightgreen,(300,0),(300,600),linewidth)
    pygame.display.update()  # 刷新展示

2.グリッドを描く 

ループによりグリッド サイズ 30 ピクセルのネットワークを描画します 

import pygame #导包
from pygame.locals import*
import sys

black=0,0,0
lightgreen=144,238,144

screen_width=600
screen_height=600

pygame.init() #初始化
screen = pygame.display.set_mode(size=(screen_width,screen_height),flags=0)
#绘制一个600*600的框框

# 设置网格大小
grid_size = 30  # 每个网格的大小为30个像素

# 绘制网格
for i in range(0, screen_width, grid_size):
    pygame.draw.line(screen, lightgreen, (i, 0), (i, screen_height))
for i in range(0, screen_height, grid_size):
    pygame.draw.line(screen, lightgreen, (0, i), (screen_width, i))

while True:
    for event in pygame.event.get():
        if event.type in (QUIT,KEYDOWN):
            sys.exit()#python的退出程序

    linewidth=4
    pygame.display.update()  # 刷新展示

3. 円を描く

pygame.draw.circle(画面、ライトグリーン、位置、半径、線幅)

pygame.draw.circle()を通じて円を描くことができます。

  • 画面は画面を表します
  • ライトグリーンは円の色を表します
  • 位置は円の中心の位置を表します
  • radius は円の半径を表します
  • 線幅は線の太さを表します 
import pygame #导包
from pygame.locals import*
import sys

black=0,0,0
lightgreen=144,238,144

screen_width=600
screen_height=600

pygame.init() #初始化
screen = pygame.display.set_mode(size=(screen_width,screen_height),flags=0)
#绘制一个600*600的框框


# 主循环
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

    color = 255,255,255
    position = 300,250
    radius = 100
    width = 10
    linewidth=4
    screen.fill(color)
    pygame.draw.circle(screen,lightgreen,position,radius,linewidth)

    pygame.display.update()  # 刷新展示

 

4. 長方形を描く

pygame.draw.rect() は、指定された画面上に四角形を描画する pygame ライブラリ内の関数です。

関数のパラメータについては以下で説明します。

  • screen: これは、四角形を描画する pygame Surface オブジェクトです。
  • lightgreen: これは長方形の色です。これは、(144、238、144) などの RGB 値を含むタプルです。
  • pos: 長方形の左上隅の座標 +左上の句読点を原点とした右下隅の座標 以下に具体例を示します。
  • width: これは長方形の幅です。これは整数です。
import pygame #导包
from pygame.locals import*
import sys

screen_width=600
screen_height=600
pygame.init() #初始化
screen = pygame.display.set_mode(size=(screen_width,screen_height))
pygame.display.set_caption("这是标题")
pos_x = 300
pos_y =300

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
    lightgreen=144,238,144
    width = 0
    pos = pos_x, pos_y, 300, 300
    pygame.draw.rect(screen, lightgreen, pos, width)#300*300的矩形
    pygame.display.update()

 右下隅に長方形の領域を描画します。

 5. 動く長方形を描く

画面の幅と高さを 600x600 ピクセルに設定します。長方形の水平および垂直の移動速度を 0.14 ピクセル/フレームに定義します。各ループは背景を黒で塗りつぶします。速度に基づいて長方形の位置を更新します。長方形が画面の境界を超える場合は、その速度の方向を変更して、反対方向に移動します。pygame.draw.rect() メソッドを使用して四角形を描画し、色を黄色、幅を 0 (実線の四角形) に設定します。

import pygame #导包
from pygame.locals import*
import sys

screen_width=600
screen_height=600
pygame.init() #初始化
screen = pygame.display.set_mode(size=(screen_width,screen_height))
pygame.display.set_caption("这是标题")
pos_x = 300
pos_y =300
vel_x = 0.14
vel_y = 0.1#粗略滴可以看作矩形的移动速度
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()

    screen.fill((0,0,0))#每次循环都要将背景置为黑色
    pos_x += vel_x
    pos_y += vel_y
    #当矩形超过屏幕范围后返回
    if pos_x > 500 or pos_x < 0:
        vel_x = -vel_x
    if pos_y > 500 or pos_y < 0:
        vel_y = -vel_y
#绘制矩形
    color = 255, 255, 1
    width = 0
    pos = pos_x,pos_y, 100, 100
    pygame.draw.rect(screen,color,pos,width)
    pygame.display.update()

 

テスト2.5

 6. グラフィックを描画するために他に一般的に使用される方法は何ですか?

Pygame は、主に Surface オブジェクト上に基本的な幾何学的形状を描画するために使用される、さまざまなグラフィック描画メソッドを提供します。以下は、Pygame でグラフィックを描画するために一般的に使用されるメソッドの一部です。

  1. pygame.draw.polygon(): ポリゴンを描画するために使用されます。多角形の頂点と多角形の色を定義するには、点のリストを提供する必要があります。

  2. pygame.draw.ellipse(): 楕円を描画するために使用されます。楕円を描画する長方形の領域と、楕円の色を指定する必要があります。

  3. pygame.draw.arc(): 円弧を描くために使用します。円弧を描画する長方形の領域、円弧の開始角度と終了角度、色を指定する必要があります。

  4. pygame.draw.lines(): 一連の接続された線分を描画し、開いたまたは閉じた多角形を作成するために使用されます。線分の頂点、線分の色と幅を定義するには、点のリストを指定する必要があります。

  5. pygame.draw.aaline() および pygame.draw.aalines(): アンチエイリアス処理された線分を描画するために使用され、線分のエッジを滑らかにすることができます。これら 2 つのメソッドは 1 ピクセルの幅の線分のみを描画でき、線幅の設定はサポートされていません。

まとめ

この記事では、線、円、四角形を描画する方法と、その四角形を単に「移動する」方法を主に紹介します。各例には、対応する完全なコードが含まれており、コピーして直接使用できます。

おすすめ

転載: blog.csdn.net/weixin_53197693/article/details/135341041