pygame 對透明度的處理
1 jpg 不支持 透明 ,因爲jpg是有損壓縮
png z可以支持透明 , png是無損壓縮
方式一 : photo.set-corlor_key(顏色)
方式二: photo.set_alpha(透明度(0-255))
方式三 :png
獲取像素顏色: photo.get_at(i,j)
convert() 方法: 圖像的像素轉換 。 兩個圖片進行操作時,最好在載入圖像Surface對象時及時調用convert 方法。 可以防止自動轉換。自動轉換不好。
image_load() 支持多種文件格式
convert_alpha() 載入時 讓底色透明。只顯示圖像。
來看一條魚
import pygame
import sys
from pygame.locals import *
pygame.init()
size = width, height = 600, 400
white = (255,255,255)
black = (0, 0, 0)
green = (0,255,0)
points = [(200,75), (300,25), (400,75), (450,25), (450,125),(400,75),(300,125)]
screen = pygame.display.set_mode(size)
pygame.display.set_caption('fish')
clock = pygame.time.Clock()
while True:
for each in pygame.event.get():
if each.type == QUIT:
sys.exit()
screen.fill(white)
#polygon 多邊形
pygame.draw.polygon(screen, green, points,0)
pygame.display.flip()
clock.tick(10)
這是什麼呢 ,可以鼠標拖動的同心圓
import pygame
import sys
from pygame.locals import *
pygame.init()
size = width, height = 600, 400
white = (255,255,255)
black = (0, 0, 0)
green = (0,255,0)
red =(255,0,0)
blue = (0,0,255)
points = [(200,75), (300,25), (400,75), (450,25), (450,125),(400,75),(300,125)]
screen = pygame.display.set_mode(size)
pygame.display.set_caption('fish')
position = size[0]//2, size[1]//2
moving = False
clock = pygame.time.Clock()
while True:
for each in pygame.event.get():
if each.type == QUIT:
sys.exit()
if each.type == MOUSEBUTTONDOWN:#鼠標摁下
if each.button ==1: #左鍵
moving = True
if each.type == MOUSEBUTTONUP:#鼠標鬆開 注意,這裏兩次判斷button是有好處滴 ,放誤點
if each.button ==1:
moving = False
if moving :#隨時捕獲鼠標是否移動
position = pygame.mouse.get_pos()
screen.fill(white)
pygame.draw.circle(screen, red, position,25,1),#半徑, 像素
pygame.draw.circle(screen, green, position,75,1),
pygame.draw.circle(screen, blue, position,125,1),
pygame.display.flip()
clock.tick(10)
'''
import pygame
import sys
from pygame.locals import *
pygame.init()
size = width, height = 600, 400
white = (255,255,255)
black = (0, 0, 0)
green = (0,255,0)
points = [(200,75), (300,25), (400,75), (450,25), (450,125),(400,75),(300,125)]
screen = pygame.display.set_mode(size)
pygame.display.set_caption('fish')
clock = pygame.time.Clock()
while True:
for each in pygame.event.get():
if each.type == QUIT:
sys.exit()
screen.fill(white)
pygame.draw.ellipse(screen, green, (100,100,440,100),1)#在矩範圍100,100 到 440 100內畫橢圓
pygame.draw.ellipse(screen, green, (220,50,200,200),1)#正放心內畫 圓
pygame.display.flip()
clock.tick(10)
'''
import pygame
import sys
import math
from pygame.locals import *
pygame.init()
size = width, height = 600, 400
white = (255,255,255)
black = (0, 0, 0)
green = (0,255,0)
points = [(200,75), (300,25), (400,75), (450,25), (450,125),(400,75),(300,125)]
screen = pygame.display.set_mode(size)
pygame.display.set_caption('fish')
clock = pygame.time.Clock()
while True:
for each in pygame.event.get():
if each.type == QUIT:
sys.exit()
screen.fill(white)
pygame.draw.arc(screen, green, (100,100,440,100),0, math.pi ,1)#在矩範圍100,100 到 440 100內畫橢圓
pygame.draw.arc(screen, green, (220,50,200,200),math.pi, 2* math.pi,1)#正放心內畫 圓
pygame.display.flip()
clock.tick(10)
pygame.draw.lines(screen ,blue, 閉合嗎,位置(可以是座標list),寬度)
消除鋸齒
pygame.draw.aaline(screen, color,(開始座標), (結束座標, 是否開啓抗鋸齒,布爾值0/1)