pygame 다양한 방식 으로 화면 보호 조작 실현(자동 전환,마우스 전환,키보드 전환)

7056 단어 pygame보호 조작
pygame 다양한 방식 으로 화면 보호 조작(자동 전환,마우스 전환,키보드 전환)을 실현 합 니 다.아래 를 보 세 요.
그림 처리
(1)이미지 채집
나 는 세 가지 방법 이 있다 고 생각한다.
첫째,파충류 기술 로 인터넷 에서 사진 을 다운로드 하면 키 라인 을 열 어 인터넷 사진 을 채집 한 다음 에 list 목록 에 불 러 올 수 있다.
둘째,컴퓨터 에 있 는 모든 디스크 를 자동 으로 검색 한 다음 list 목록 에 불 러 올 수 있 습 니 다.
셋째:디 렉 터 리 를 지정 하고 list 목록 에 불 러 옵 니 다.
나 는 게 으 름 을 피 워 서 세 번 째 방법 을 선택 하여 실현 한다.구체 적 인 코드 는 다음 과 같다.

    path = './image/'
    files = []
    dirs = os.listdir(path)
    for diretion in dirs:
        files.append(path + diretion)
(2)그림 불 러 오기
내 가 왜 초기 화 할 때 불 러 오지?
효율 문 제 를 해결 하기 위해 서 는 사용 할 때마다 반복 적 으로 불 러 올 필요 가 없 으 며 초기 화 할 때 화면 크기 에 맞 게 그림 크기 를 조정 하기 때 문 입 니 다.
그래서 저 는 이 과정 을 함수 로 포장 하여 후속 호출 에 편리 하고 매개 변 수 는 화면의 크기 로 전달 합 니 다.그리고 bglist 대상 으로 돌아 갑 니 다.

    for file in files:
        picture = pygame.transform.scale(pygame.image.load(file), (1440, 900))
        dSurface = picture
        # dSurface = pygame.image.load(file).convert()
        bglist.append(dSurface)
(3)전체 코드
함수 로 봉 인 됨:

def init_image():
    path = './image/'
    files = []
    dirs = os.listdir(path)
    for diretion in dirs:
        files.append(path + diretion)

    for file in files:
        picture = pygame.transform.scale(pygame.image.load(file), (1440, 900))
        dSurface = picture
        # dSurface = pygame.image.load(file).convert()
        bglist.append(dSurface)

2.pygame 관련 매개 변수 초기 화
(1)초기 화 매개 변수 설정

pygame.init()  #    pygame 
#       
pygame.display.set_caption('     ')  #       
tick = pygame.time.Clock()
fps = 10  #      ,         
fcclock = pygame.time.Clock()
bglist = []
flag = 0
runimage = None
(2)전체 화면 으로 설정:

screen = pygame.display.set_mode((1440, 900),flags=pygame.FULLSCREEN)  
3.핵심 모듈
(1)자동 전환

def run():
    flag = 0
    runimage = random.choice(bglist)
    while True:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()
        screen.fill((255, 255, 255))  #        
        screen.blit(runimage.convert(), (0, 0))
        if flag % 100 == 1:
            runimage = random.choice(bglist)
        flag += 1
        fcclock.tick(fps)
        pygame.display.flip()  #     
(2)키보드 전환

        for event in pygame.event.get():
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_ESCAPE:
                    pygame.quit()
                    sys.exit()
                if event.key == pygame.K_SPACE:
                    reset()
(3)마우스 전환

        for event in pygame.event.get():
            if event.type == pygame.MOUSEBUTTONDOWN:
                reset()
(4)작업 종료

        for event in pygame.event.get():
            if event.type == pygame.QUIT or event.type == pygame.K_F1:
                pygame.quit()
                sys.exit()
(5)투명 색 설정

runimage.set_alpha(255-flag*2)

(6)완전한 핵심 코드:
함수 로 봉 인 됨:

def run():
    global flag,runimage
    runimage = random.choice(bglist)
    while True:
        for event in pygame.event.get():
            if event.type == pygame.QUIT or event.type == pygame.K_F1:
                pygame.quit()
                sys.exit()
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_ESCAPE:
                    pygame.quit()
                    sys.exit()
                if event.key == pygame.K_SPACE:
                    reset()
            if event.type == pygame.MOUSEBUTTONDOWN:
                reset()
        screen.fill((255, 255, 255))  #        
        screen.blit(runimage, (0, 0))
        if flag % 100 == 1:
            reset()
        flag += 3
        runimage.set_alpha(255-(flag*2) % 250)
        fcclock.tick(fps)
        pygame.display.flip()  #     
 
4.기타 관련 함수:
(1)reset 함수

def reset():
    global flag,runimage
    flag = 0
    runimage = random.choice(bglist)
(2)main 함수

if __name__ == '__main__':
    init_image()
    run()
5.실행 효과:

6.완전한 코드

import sys, pygame
import os
import random
import time

pygame.init()  #    pygame 
screen = pygame.display.set_mode((1440, 900),flags=pygame.FULLSCREEN)  #       
pygame.display.set_caption('     ')  #       
tick = pygame.time.Clock()
fps = 10  #      ,         
fcclock = pygame.time.Clock()
bglist = []
flag = 0
runimage = None


def init_image():
    path = './image/'
    files = []
    dirs = os.listdir(path)
    for diretion in dirs:
        files.append(path + diretion)

    for file in files:
        picture = pygame.transform.scale(pygame.image.load(file), (1440, 900))
        dSurface = picture
        # dSurface = pygame.image.load(file).convert()
        bglist.append(dSurface)

def reset():
    global flag,runimage
    flag = 0
    runimage = random.choice(bglist)

def run():
    global flag,runimage
    runimage = random.choice(bglist)
    while True:
        for event in pygame.event.get():
            if event.type == pygame.QUIT or event.type == pygame.K_F1:
                pygame.quit()
                sys.exit()
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_ESCAPE:
                    pygame.quit()
                    sys.exit()
                if event.key == pygame.K_SPACE:
                    reset()
            if event.type == pygame.MOUSEBUTTONDOWN:
                reset()
        screen.fill((255, 255, 255))  #        
        screen.blit(runimage, (0, 0))
        if flag % 100 == 1:
            reset()
        flag += 3
        runimage.set_alpha(255-(flag*2) % 250)
        fcclock.tick(fps)
        pygame.display.flip()  #     
        # time.sleep(10)

if __name__ == '__main__':
    init_image()
    run()

pygame 의 다양한 방식 으로 화면 보호 조작(자동 전환,마우스 전환,키보드 전환)을 실현 하 는 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 pygame 화면 보호 조작 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 십시오.앞으로 우 리 를 많이 지지 해 주시 기 바 랍 니 다!

좋은 웹페이지 즐겨찾기