노코드커미터

[Cursor.ai-입코딩] Block Puzzle 만드는 과정 공유

cocyio 2025. 2. 23. 03:17
반응형

초기 코드는 새로나왔다는 Grok 3 으로 잡았고

그다음 중간부터 다시 Cursor.ai 일부 모델을 사용하여 수정중

프롬프트를 어떻게 입력하는지 과정을 한번 공유해보기로 합니다.

 

게임 css 변경

더보기

블록 게임인데
우드 스타일로 css를 바꿔줘

---------------------------------------

알겠습니다. 사용자가 CSS를 우드 스타일로 변경해 달라고 요청했습니다. 현재 코드에서 body 배경색, 게임 컨테이너, 셀, 블록 등의 색상과 스타일을 수정해야 합니다. 우선 기존 스타일에서 색상 관련 부분을 찾아야 합니다. body의 background는 #1a1a1a에서 우드톤으로 바꿔야 하니 갈색 계열로 선택합니다. 게임 컨테이너의 배경도 어두운 갈색으로 변경합니다. 셀의 배경색은 우드 패턴을 위해 이미지를 사용하는 것이 좋을 것 같습니다. 하지만 이미지 대신 그라데이션을 활용해 나무 질감을 흉내낼 수 있습니다. border 색상은 더 진한 갈색으로 조정합니다. filled 클래스의 셀은 초록색 대신 주황색 계열로 변경해 어울리게 합니다. 블록 셀의 색상도 주황색으로 조정하고 border를 더 진한 색으로 바꿉니다. 점수 표시의 색상도 주황색으로 통일합니다. 추가로 그림자 효과와 둥근 모서리를 조정해 자연스러운 우드 느낌을 내야 합니다. 기존 코드 구조는 유지하면서 색상과 일부 스타일 속성만 변경합니다. 이제 수정할 부분을 찾아서 코드 블록에 반영합니다.

 

블록 미리보기 추가 

더보기

블록을 놓을때 게임판에 미리보기가 나오면 좋겠어

---------------------------------------

습니다. 사용자가 블 래그할  임판에 미기 기능 추가하고 싶어합니다. 기 코드에서 드래그  핸들 블록 배 로직을 수해야 합니다. 먼저, 드래그 중 의 위치 추적하고 해당 위치에서 치 가능 여를 시각적으로 시해야 합니다.

 
 

보기를 구현하기 위해 가상의 요소 생성하거나 기  스타일을 변경하는 방법을 려할  있습니다. 현재 코드에서 handleDrag 함수와 endDragging 함수 그 동작을 관리므로  부분에 미리보기 직을 추가해야 합니다. 또한, 블록 패턴에 따라 해당 이 유지 확인하고 유 경우 미 색상을 적용해야 합니다.

 
 

 tryPlaceBlock 함수에서 사용 canPlaceBlock 함수를 활용하여 치 가능 영을 판단할  있습니다. 미리보 에는 실제 을 배치하지 않고 스 변경해야 하므로, 임시로  래스를 추가거나 배경색을 변경하는 방법 사용  있습니다. 드래그가 나면 리보기 스타을 초기화해야 합니다.

 
 

또한, 사용자 경을 고하여 미리보 상을  블록 색과 구지만 투명도 등을 하여 자연스럽 시해야 합니다. CSS 새로운 클래스를 추가하여 리보 상태를 정의하는 것이 좋을  습니다. 예 들어 .preview 클래스를 만들어 명한 주황색으로 타일링 수 있습니다.

 
 

지막으로, 성능을 위해  그 이벤트마다 모든  데이트하는 대신 변경된 부분 데이트하는 식을 고려해야 합니다. 이전 미기 위치를 저장 변경   위치 스타일 초기화한  새로운 위치 보기를 적용하는 방식으로 구현할  있습니다.

블록 미리보기 추가 

더보기

css를 조금더 모바일 최적화되도록 해줘
지금은 오른쪽이 스크린을 좀 넘어가고있어

---------------------------------------

습니다. 사용자가 모바 적화를 요, 현재 른쪽이 크린을 넘어가고 있다고 합니다. 먼저 문제 악하기 위해 CSS 코드를 살 합니다.

 
 

존 코드에서 .game-container의 max-width가 400px로 설정되어 있지만, 모바일 화면에서 이  절한 확인해야 합니다. 또한 padding이나 margin  면 화면을 날 수 있습니다.

포트 메타 태 제대로 설정되어 있는지 확인합니다. 현재 initial-scale=1.0로 되어 있지만, 모바일에서 확/축소를 방지하기 위해 maximum-scale=1.0 등을 추가할 수 있습니다.
 
터치 액션 개선하기 위해 touch-action: none;이 body 적용되어 있는데, 이 부분 스크롤 방해할 수 있는지 검합니다.
 

 이너의   벗어 않도록 flex-wrap 추가하거나, gap 해야  수 있습니다. 또한 미 리를 사용 바일 면에 맞는 일을 적용 필요 있습니다.

 

적으로 다음과 같은 수정 필요할 것 같습니다:

1. 뷰포트 메타 태 수

2. 게 이너의 max-width 조  padding 축

3. 블 컨너의 flex-wrap 설정
 

 

4.미  추가 모바일 스타일 

5. 터 관련 CSS 성 보

 

이러한 변경점을 코드 반영하여 모에서 레웃이 깨지 도록 합니다.

드래그 판정 변경 

더보기

지금 드래그할때 판정이 너무 어려워
미리보기를 보면 드래그하려는 블럭의 어디를 드래그해도 왼쪽 상단을 기준으로 블럭이 배치되는듯이 보여서
차라리 오른쪽 하단을 기준으로 배치를 시도하도록 변경해줘

---------------------------------------

습니다. 사용자가 블록 래그  치 기준  단에서 른쪽 단으로 변경하고  합니다. 기 코드에서 래그 위치 계산 방식을 해야 합니다.

, 드그 시작 시 오 계산 식을 변경해야 합니다. 기에는 그한  쪽 상단 기준으로 계산했지만, 오쪽 하 기준으로 계산하려면 블의 너 이를 고려해야 합니다.

, 미 위치 계산 시에도  기를 하여 른쪽 단을 기준으로 행 열을 계산해야 합니다. 이를 위해 패 행과 열 이를 가져와 위치  야 합니다.

막으로, 블록  가능 부를 확인  새로운 기준  행과 열 위를 사해야 합니다. 이러한 변경 사항들을 코드에 반영하여 사용자가 원하는  구현 수 있도록  합니다.

 

드래그 판정 변경 

더보기

블럭 색상을 좀 더 나무 같이 디자인해주고
한줄이 사라질때 효과를 애니메이션효과 추가해줘

---------------------------------------

알겠습니다. 사용자가  상을 나무처럼 , 한 줄이 사라질  니메이 효과를 추가해 라고 요청했습니다. 먼 존 코드에서 블  상을 수해야 합니다. 나 텍스를 반영하기 위해 경색 두리 색상을 하고, CSS  감을 줄  있는 스타일을 추가해야 합니다.

음으로, 한 줄 사라질 때의 니메션 효과를 추가해야 합니다. 기존의 clearLine 함수를 수정하여  라질  페이 아웃이나 다른 효과가 나타도록 합니다. CSS 새로운 레임 애니메션을 정의하고, 해당 클래스를 적용한 후 일 시간 후에 제하는 방식으로 구현할 수 있습니다.

 CSS 부분 확인합니다. .cell.filled 래스의 경색을  색상으로 변경하고, 텍처를 위한 background-image를 추가합니다. 또한, 줄  니메이을 위한 @keyframes  정의하고, 해당 션을 적용하는 클래스를 추가합니다.

 다음, JavaScript clearLine 함수에서  거할 때 애니이션 클래스를 추가하고, setTimeout을 사용하여 애니메  요소를 거하도록 수합니다. 이, 애니이션 지속 시간 일치하도록 지 시간을 설정해야 합니다.

, 블 이너  스타일을 조하여  무 같은 질감을   도록 합니다. 예를 들어, box-shadow 추가하거나 테 상을 변경합니다.

마지막으로, 변경 사항이 사용자의 요구항을 하는지 확인하기 위해 스트가 필요합니다. 특히, 애니메이션  상 변경이 게 레이에 방되지 않는지 확인해야 합니다.  

레벨디자인

더보기

이제 레벨디자인을 할거야

블럭유형에 따라서 초급자/중급자/상급자/카오스로 하고싶은데
초급자는 1~4개짜리 블럭
중급자는 딱 4개짜리만 나오는 테트리스 블럭 - 이걸 기본 레벨로
상급자는 5개이상 블럭들이 나오고
카오스는 모든 블럭이 나오도록 

---------------------------------------

알겠습니다.

 

...

너무 길어서 여기까지 

완성본

입코딩으로 만든 blockpuzzle

https://game.cocy.io/blockpuzzle/

 

Block Puzzle Master - COCY.IO

도전적인 블록 배치 게임! 최고 점수를 달성하고 친구들과 경쟁해보세요

game.cocy.io