Python 기반 매일 쿨 링 기능 구현
이번 에는 하루 하루 쿨 하 게 뛰 는 걸 로 하 겠 습 니 다.
이렇게 나 왔어요.
다음은 모든 코드 를 업데이트 해 보도 록 하 겠 습 니 다.
그대로
import pygame,sys
import random
게임 프로필 적어 주세요.
width = 1200 #
height = 508 #
size = width, height
score=None #
myFont=myFont1=None #
surObject=None #
surGameOver=None #
bg=None #
role=None #
object=None #
objectList=[] #
clock=None #
gameState=None # (0,1) ( , )
인물 을 묘사 하 다
class Role: #
def __init__(self,surface=None,y=None):
self.surface=surface
self.y=y
self.w=(surface.get_width())/12
self.h=surface.get_height()/2
self.currentFrame=-1
self.state=0 #0 ,1 ,2
self.g=1 #
self.vy=0 #y
self.vy_start=-20 #
def getRect(self):
return (0,self.y+12,self.w,self.h)
장애물 을 쓰다
class Object: #
def __init__(self,surface,x=0,y=0):
self.surface=surface
self.x=x
self.y=y
self.w=surface.get_width()
self.h=surface.get_height()
self.currentFrame=random.randint(0,6)
self.w = 100
self.h = 100
def getRect(self):
return (self.x,self.y,self.w,self.h)
def collision(self,rect1,rect2):
#
if (rect2[0]>=rect1[2]-20) or (rect1[0]+40>=rect2[2])or (rect1[1]+rect1[3]<rect2[1]+20) or (rect2[1]+rect2[3]<rect1[1]+20):
return False
return True
배경 을 쓰다
class Bg: #
def __init__(self,surface):
self.surface=surface
self.dx=-10
self.w=surface.get_width()
self.rect=surface.get_rect()
def initGame():
global bg,role,clock,gameState,surObject,surGameOver,score,myFont,myFont1,objectList
#
score=0
#
objectList=[]
#
myFont=pygame.font.Font("./freesansbold.ttf",32)
myFont1=pygame.font.Font("./freesansbold.ttf",64)
# ( )
clock = pygame.time.Clock()
#
gameState=0
#
surBg=pygame.image.load("image/bg.bmp").convert_alpha()
bg=Bg(surBg)
#
surGameOver=pygame.image.load("image/gameover.bmp").convert_alpha()
#
surRole=pygame.image.load("image/role.png").convert_alpha()
role=Role(surRole,508-85)
#
surObject=pygame.image.load("image/object.png").convert_alpha()
def addObject():
global surObject,object,objectList,object
rate=4
#
if not random.randint(0,300)<rate:
return
y=random.choice([height-100,height-200,height-300,height-400])
object=Object(surObject,width+40,y)
objectList.append(object)
def updateLogic():
global gameState,score
#
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
elif event.type==pygame.KEYDOWN:
#
if gameState==0:
if event.key==pygame.K_SPACE:
if role.state==0:
role.state=1
role.vy=role.vy_start
elif role.state==1:
role.state=2
role.vy=role.vy_start
elif gameState==1:
if event.key==pygame.K_SPACE:
#
initGame()
if gameState==0:
#
bg.dx+=10
if bg.dx==1200:
bg.dx=0
#
if role.state==0:
role.currentFrame+=1
if role.currentFrame==12:
role.currentFrame=0
else:
role.y+=role.vy
role.vy+=role.g
if role.y>=508-85:
role.y=508-85
role.state=0
#
addObject()
for object in objectList:
object.x-=10 #
# ,
if object.x+object.w<=0:
objectList.remove(object)
score+=10 # , 10
print(" ")
#
if object.collision(role.getRect(),object.getRect()):
if(object.currentFrame==6):
objectList.remove(object)
score+=100 # 100
print(score)
print(" ")
else:
gameState=1 #
print(" !")
ok 라,이것 이 바로 이 매일 멋 지게 달 리 는 모든 코드 입 니 다.문제 가 있 으 면 메 시 지 를 남 겨 도 됩 니 다.제 가 보면 다 돌아 올 겁 니 다.파 이 썬 을 기반 으로 매일 쿨 링 기능 을 실현 하 는 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 파 이 썬 은 매일 쿨 링 내용 을 쓰 고 있 습 니 다.예전 의 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.