일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 타이핑 몬스터
- 운석 피하기 게임
- Stable diffusion
- 에르난 디아스
- 쿠바전통음악
- 트렌드코리아2025
- 고양이발 살인사건
- Gym
- pygame
- 시집
- 어른의 행복은 조용하다
- 황선엽
- 운석피하기 게임
- 단어가 품은 세계
- gymnasium
- 아무도 없는 숲속에서
- 숨결이 바람이 될 때
- 매트로폴리탄
- 인생의 해상도
- 나는 스물일곱 2등 항해사입니다.
- Ai
- 게임개발
- frozen lake
- comfyui
- 부에노비스타 소셜클럽
- 타이핑좀비
- Python
- 나는 매트로폴리탄 미술관 경비원입니다.
- 타자연습게임
- openAI
- Today
- Total
목록게임공작소 (26)
스푸79 기록 보관소

게임 플레이 상으로는 대부분의 코드 완성한 상태이다.하지만 외적인 면에서 보완할 부분이 사실 많다.우선 게임은 한번 할게 아니라면 플레이가 죽은 이후에 재도전할지 플레이어가 선택할 수 있어야한다. 종료된 게임을 다시 시작하게 하려면 게임의 상태를 관리 해야한다. TITLE = 0 #게임 시작 전 메뉴화면 PLAYING = 1 #게임 시작 ... TRYAGAIN = 4 #게임 종료 후 대기 QUIT = 5 #프로그램 종료 우선 상태값을 위와 같이 정의하고, PLAYING(게임 진행) 와 TRYAGAIN(게임 종료 후 대기)를 구분한다. def try_again_process(self): if not(self.player.islive): ..

취미로 게임을 개발하거나 인디게임개발자를 꿈꾸는 분들에게사막의 오아시스와 같은 사이트가 있다. 그게 바로 opengameart.org라는 사이트이다.https://opengameart.org OpenGameArt.org opengameart.org 2d와 3d asset부터 배경음악, 효과음까지 방대한 자료가 있는데, 무료로 받아서 사용할 수가 있다.라이센스가 걸린 것도 대부분 게임 내에 CREDIT을 만들 때 THANKS TO 정도에 출처를 표기하면 된다. 이번 포스트에서는 사운드와 효과음을 넣을 생각이다.우선 배경음악부터 처리해보자.위의 사이트에서 art type을 music만 체크하고 space로 검색해보았다.여러 배경음악 중 out there 라는 음악이 느낌상 지금 개발 중인 운석피하기와 가장 ..

이번에는 에너지 표시, 플레이 타임 표시, 플레이 중에 획득한 보석 갯수 표시와Z키를 눌렀을 때 폭탄이 사용되면서 화면 내에 있는 모든 운석을 폭파시키는 기능을 구현해 보았다. 우선 에너지 표시부터 처리해보자.class Player(pygame.sprite.Sprite): def __init__(self, main, pos, sprites, missile_sprites): super().__init__() .. (중략) .. self.health = 8 self.total_health = 8 멤버변수 health 와 total_health를 추가한다. health 값을 8로 설정했다. 운석과 총 8번 부딪쳐도 죽지 않는다.total_h..

아이템 효과를 구현해보자.총 5개의 아이템을 게임에 추가할 것이다. 이번 포스트에서는 파워업과 방어막 아이템과 그 기능을 구현하겠다. 파워업 아이템을 먹게 되면미사일이 한 개만 발사되다가 한번에 3개씩 발사된다. 방어막 아이템을 먹게 되면동그란 실드가 기체 주변에 생성되고 일정 시간동안 운석의 데미지를 받지 않도록 해준다. Player 클래스에 파워업과 방어막 처리를 확인하는 속성을 추가하자.self.power_yn 과 self.shield_yn 이 True가 되면 아이템 효과가 발현되도록 한다.import pygamefrom util import Utilfrom enviroment import Enviroment as envclass Player(pygame.sprite.Sprite): def _..

이번 포스트에서는 총알 발사하는 기능을 넣도록 하겠다. 위의 보는 바와 같이 조준선과 미사일 이미지를 새로 그렸다.조준선은 마우스 커서에 따라 움직이고왼쪽버튼을 누르면 조준선이 있는 방향을 향해 미사일을 발사한다. 끔찍하지만 이를 위해 우리는 또 수학을 잠깐 알아야한다. 메인캐릭터(비행기)와 조준선의 좌표를 각각 x1, y1, x2, y2라고 할때마우스 왼쪽버튼을 클릭할 때 미사일이 날아가야하는 각도는 위의 그림과 같다.위의 미사일 이미지와 메인캐릭터 이미지도 각도만큼 회전을 해줘야한다.즉, 아래 그림과 같이 이미지를 틀어줘야 자연스러운 모습이 나온다. 그러면 우선 둘 사이에 각도부터 구해보자.사실 이미 우리는 이 각도를 구하는 걸 한번 해 봤다.바로 운석의 움직임이다. 운석은 지금 메인 캐릭터를 향해 ..

지난 포스트에서는 충돌 시점 파편이 터지는 효과를 넣었다. 이번 포스트는 여러 번 충돌 시체력(?)이 모두 떨어진 운석이 사라지면서 폭발하는 효과를 넣어보았다.폭발하는 효과를 넣으니 타격감이 조금 생긴 듯 한 기분이 든다.나중에 효과음까지 넣으면 좋을 듯 싶다. 충돌 시점 폭발효과는 원을 그리도록 했고아래 그림처럼 폭발하는 개체의중심으로부터 원이 무작위로 발생하도록 했다. 폭발하는 효과의 순서가 중요한데가장 큰 원은 회색으로 그리고그 위에 원은 빨간색과 노란색, 주황색이 무작위로 그려지도록 했다.당연히 회색 이외의 원은 크기가 좀 더 작아야한다.원의 위치도 매번 달라지도록 설정해준다. 폭팔 이후에 바로 사라지는게 아니라화면에 잔상이 남도록 투명도를 조절하여천천히 사라지도록 처리하면꽤 그럴싸한 폭발효과..

운석과 메인 캐릭터와 충돌할 때운석과 운석이 충돌할 때충돌로 인한 파편이 발생하는 부분을 구현해 보았다. 어떤 물체가 폭발할 때폭발하는 파편의 방향은 아래 그림과 같은 것이다. 360도 방향으로 물체의 조각이 퍼질 것이고그 방향과 속도 그리고 파편의 크기는 모두 일정하지 않다.위와 같은 모양이 되도록 한번 코드로 구현해보자class Particle(pygame.sprite.Sprite): def __init__(self, x, y, size, dir, sprites): pygame.sprite.Sprite.__init__(self) self.sprites = sprites self.size = size self.image = sprites[size..

지난 포스트에서 개발된 충돌검사는실제로 충돌하는 부분이 아닌이미지의 공백 부분까지 확인해서 처리하기 때문에실제 화면에서 충돌하지 않았는데도 불구하고 충돌 처리가 되는 증상이 있었다.이번 포스트에서 올린 부분 내용은그 문제를 보완하고 중요한 충돌검사의 효율을 높이는 방법을 설명하겠다. Sweep And Prune 알고리즘SAP로 불리는 sweep and prune 알고리즘은 다수의 충돌 검사를 조금 더 효율적으로 처리해 준다.지난 포스트에서 사용할 rect collider의 경우에는 x축과 y을 모두 검사하는 방식이라면SAP의 경우는 x축만을 이용하여 검사를 한다.아래 그림 처럼 운석과 기체의 위치가 있다고 가정해 보자.지난 번 로직은 지금 화면에 있는 모든 사물의 충돌 검사를 위치와 관계없이 처리하는데 ..