python(12)
-
Django) 간단한 웹 애플리케이션 만들기 (3)
삭제하고 싶은 글의 번호를 알기 위해서 변수 id를 부여했다. read페이지의 template에 return 값에 id값을 넣어준다. input type hidden은 보이진 않지만, post 방식으로 id값을 가져와준다. 하지만 다른 페이지의 return 값엔 id값이 없고, HtMLTemplates에서는 id파라미터를 받으므로 오류가 난다. 따라서 기존 id값을 None으로 설정. POST 값으로 id 값을 가져온다. 그리고 id값과 topic아이디 값이 같지 않은 인자들을 newTopics에 이를 추가해주고, topics변수에 다시 newTopics를 할당한다. 그리고 return redirect('/')를 통해 값을 삭제한 뒤, 홈으로 복귀한다. 또한 contextUI라는 변수값을 지정해주고, i..
2022.07.20 -
Django) 간단한 웹 애플리케이션 만들기 (2)
창에서 오른쪽 마우스를 누르고 검사에 들어가서, network로 들어가서 만들어놓은 으로 내가 입력한 정보를 제출할 수 있었다. 그리고 method 값을 지정해주지 않아서, default로 GET 형태로 들어감 그러면 간단하다. 그냥 안에 method="post"를 넣어주면, post형태로 값이 들어감. 그러면 이제 post값으로 찍힘. 대신 Django 보안상 문제로 페이지 오류가 나기 때문에 정공법으로 뚫는 게 아니라 우회하기위해서, django request skip을 구글링하여 from django.views.decorators.csrf import csrf_exempt 우회하는 라이브러리를 가져온 후, 우회하고 싶은 함수 위에 @csrf_exempt 를 달아주면 된다. 그러면 이제 사용자가 입력..
2022.07.19 -
Python) 골드 마이너 게임 만들어보기 (2) (pygame frame 이용)
집게의 움직임에 대해서 이해하는 데 정말 어려웠던 것 같아. 먼저 자연스러워 보이기 위해서 math.Vector2 를 이용해 거리를 두었어. 캐드의 offset 기능과 똑같아. 집게를 좌우로 회전시키기 위해서는 먼저 기준점이 필요해. 따라서 rect_center = self.position + self.offset 을 통해 기준점을 잡아줬어. update 함수 내에 self.rect 를 포함시키고, 그리고 self.rect = self.image.get_rect(center=rect_center)를 이용해 네모를 계속 업데이트해주는거지. 집게를 돌려주기 위해서 집게가 흔들리는 각도값을 임의로 10~170도 사이로 정해줬어. direction 함수 내에 LEFT=-1, RIGHT=1 을 정의해줌으로써 임의..
2022.07.11 -
Python) 골드 마이너 게임 만들어보기 (1) (pygame frame 이용)
안녕하세요. 이제부터는 출근해서 코딩도 하루에 많이는 못할 것 같네요. 그래도 꾸준히 할겁니다. 아자아자! 이번에는 캐릭터 등 스크린에 나오는 객체들을 class 함수로 정의하고 Spirte 를 상속받아 만드는 과정을 해봤어요. 기존 객체를 생성하는 방법은 character_size 를 통해 get_rect()함수를 통해 사이즈를 불러오고, 이 사이즈에서 나오는 튜플값을 바탕으로 캐릭터의 가로세로, 그리고 가로세로를 기반으로 xy 좌표를 그려줘서 객체를 생성했습니다. 또한 기존에는 이미지들을 불러올 때, 경로를 모두 써주었는데 이번에는 current_path 라는 변수값을 os.path.dirname(__file__) 로 할당시켜줬습니다. 즉 현재 파일 위치에 있는 이미지들을 불러오기 때문에, 더욱 편하..
2022.07.06 -
Python) 팡게임(Pang Game) 만들어보기 (pygame frame 이용)
팡게임이란 아래 이미지처럼, 끊임없이 튕겨지는 공들을 무기로 없애주는 게임입니다. 공들은 무기에 의해 타격될 때마다 이전 공의 반 사이즈로 줄어들며, 2개로 분열합니다. 그리고 세 번째로 분열된 공이 부서지면 공은 아예 없어지게 됩니다. 따라서 기존에 만들어 두었던 pygame frame 을 이용해서 만들어보겠습니다. 이 게임의 핵심은 무기와 공입니다. 무기가 '발사'되며, 발사된 무기에 타격된 공들은 두 개로 분열되며 좌우로 튕겨져나옵니다. 크기와 떨어지는 속도를 제외한 공들의 특성은 대부분 비슷합니다. 첫 번째 공을 포함해, 분열되는 네 번째 공까지 리스트로 묶습니다. 공들을 balls = [] 로 빈 리스트로 정의한 뒤, append 를 통해 공의 특성값들을 dictionary 로 정의해줍니다. 무..
2022.07.04 -
Python) 똥 피하기 게임 만들기 (pygame frame 이용)
앞서 만들었던 코드를 응용하여, 하늘에서 내리는 똥을 피하는 게임을 만들어보자. 말그대로 똥 피하기 게임이다. 기존 코드의 enemy란 변수값은 수정하지 않았으니, 이를 '똥'으로 생각해주자. random의 randrange 함수를 사용해서, 똥은 x 좌표 랜덤에서 생성되게 바꿔주었다. y 좌표는 0으로 두어 하늘에서 떨어지는 듯한 출력을 줄 수 있다. (pygame 좌표는 왼쪽 위가 0,0 이다) 또한 캐릭터는 좌우로밖에 이동하면 안되므로, y좌표를 아래에 고정시키고 아예 K_UP, K_DOWN 관련 함수를 모두 삭제하여 움직일 수 없게 만들었다. 또한 똥이 내리는 효과를 연출하기 위해서 enemy_y_pos에 프레임 수마다 y좌표값을 더해줌으로써 똥이 내리는듯한 연출을 표출할 수 있다. 그럼 이제 이..
2022.07.03