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 화면 보호 조작 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 십시오.앞으로 우 리 를 많이 지지 해 주시 기 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
완전히 처음부터 시작하는 보드 게임의 프로그래밍과 기계 학습 [4 일째]평소 Python의 기본적인 사용법을 배웠으므로, 드디어 Pygame을 사용하여 게임 제작의 입구로 발길을 가고 싶습니다. Pygame은 Simple DirectMedia Layer (SDL)라고 불리는 다른 게임 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.