728x90
반응형
pygame 설치 필요
pip3 install pygame
import pygame
import random
class Player(pygame.sprite.Sprite):
def __init__(self):
super(Player,self).__init__()
self.surface=pygame.Surface((75,25))
self.surface.fill((0,0,0))
self.rect=self.surface.get_rect()
def update(self,key_pressed):
if key_pressed[pygame.K_LEFT]:
self.rect.move_ip(-5,0)
if key_pressed[pygame.K_RIGHT]:
self.rect.move_ip(+5,0)
if key_pressed[pygame.K_UP]:
self.rect.move_ip(0,-5)
if key_pressed[pygame.K_DOWN]:
self.rect.move_ip(0,+5)
if self.rect.left<0:
self.rect.left=0
elif self.rect.right>640:
self.rect.right=640
elif self.rect.top<0:
self.rect.top=0
elif self.rect.bottom>480:
self.rect.bottom=480
class Enemy(pygame.sprite.Sprite):
def __init__(self):
super(Enemy,self).__init__()
self.surface=pygame.Surface((25,25))
self.surface.fill((0,255,0))
self.rect=self.surface.get_rect(center=(640,random.randint(0,480)))
self.speed=random.randint(5,20)
def update(self):
self.rect.move_ip(-self.speed,0)
if self.rect.right<0:
self.kill()
pygame.init()
screen=pygame.display.set_mode((640,480))
clock=pygame.time.Clock()
ADDENEMY=pygame.USEREVENT+1
pygame.time.set_timer(ADDENEMY,250)
player=Player()
enemies=pygame.sprite.Group()
running=True
while running:
for event in pygame.event.get(): # 윈도우 창 닫기 버튼 누르면 닫힘
if event.type==pygame.QUIT:
running=False
elif event.type==pygame.KEYDOWN:
if event.key==pygame.K_ESCAPE: # esc 키를 누르면 종료됨
running=False
elif event.type==ADDENEMY:
newEnemy=Enemy()
enemies.add(newEnemy)
key_pressed=pygame.key.get_pressed()
player.update(key_pressed)
enemies.update()
screen.fill((255,255,255)) # R:255, G:255, B:255 = 하얀색
# pygame.draw.circle(screen,(0,0,255),(320,240),50)
# surface=pygame.Surface((75,25))
# surface.fill((0,0,0)) # 0 = 검정색
# rect=surface.get_rect()
screen.blit(player.surface, player.rect)
for enemy in enemies:
screen.blit(enemy.surface, enemy.rect)
if pygame.sprite.spritecollideany(player,enemies):
player.kill()
running=False
pygame.display.flip()
clock.tick(30)
pygame.quit()
728x90
반응형
'즐거운프로그래밍' 카테고리의 다른 글
[딥러닝] 알고리즘 파이썬 기반 편향 개념의 AND, NAND, OR 구현하기 (0) | 2023.10.27 |
---|---|
[딥러닝] 알고리즘 파이썬 기반 AND, NAND, OR 구현하기 (0) | 2023.10.27 |
[파이썬] 기초 다지기 클래스(class) (0) | 2023.10.27 |
[파이썬] 기초 다지기 함수 2 (0) | 2023.10.27 |
[파이썬] 기초 다지기 함수 1 (0) | 2023.10.27 |