커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
bool 자료형
게임 개발이 처음이어도 쉽게 배우는 모바일 게임 개발
3주차
북마크
김*현
댓글
7
추천
0
조회수
12
조회수
12
답변 완료

* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.

* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.


3-6 강의 6분 쯤에

bool 자료형을 사용하여, 조건문을 만드는 부분에서

if(energy == full)이 만족이 되어 이 조건을 타게 되었을 때

if(!is_full) 의 조건문을 타는 이유가 헷갈려서 질문을 남겼습니다 :)


첫번째 생각해본 것은

처음에 bool = is_full = false; 초기 설정을 하였기에

if(!is_full)가if( is_full == True )를 뜻한다고 생각했고,

이게 맞다면 is_full 을 True로 만들 다른 정의가 전혀 되어있지 않은데 왜 작동이 되는지 모르겠습니다,

두번째는

만약 !is_full 이 초기 값과 상관 없이, 그저 조건문에서 !is_full은 False를 뜻하고, !가 없는 is_full은 True를 뜻하는 것인지

그래서 is_full이 false이기에 처음엔 조건문을 통과하였지만, is_full = true를 만나 true 값이 되었기에, full 상태 이더라도, 조건을 통과 못하는 상태가 된다.

인지,

후자가 더 가능성은 높지만 확실하게 정의를 내리고 싶어서 여쭤보고싶습니다!

우다다다 여쭤보는게 너무 많지만,, 틀린 부분이 있으면 정정 부탁드립니다. 감사합니다!

   if (energy == full)
         {
             if (!is_full)
             {
                 is_full = true;
                 Hungry_cat.SetActive(false);
                 Full_cat.SetActive(true);
                 Destroy(this.gameObject, 3f);
                 Game_Manager.instance.add_score();
             }
         }





작성한 코드 및 에러 메세지

 private void OnTriggerEnter2D(Collider2D collision)
 {
     if (collision.gameObject.CompareTag("Food"))
     {
         if (energy < full)
         {
             energy += 1f;
             front.localScale = new Vector3(energy / full, 1f, 1f);
             Destroy(collision.gameObject);


         }
         if (energy == full)
         {
             if (!is_full)
             {
                 is_full = true;
                 Hungry_cat.SetActive(false);
                 Full_cat.SetActive(true);
                 Destroy(this.gameObject, 3f);
                 Game_Manager.instance.add_score();
             }
         }
     }
 }
취소
 공유
취소
댓글 0
댓글 알림
나의얼굴