문서 편집 권한이 없습니다. 다음 이유를 확인해주세요: 요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다: 사용자. 문서의 원본을 보거나 복사할 수 있습니다. =Node= ==개요== Node 클래스는 화면에 표기되는 모든 객체의 기본 클래스입니다. 기본적으로 화면에 표기되는 객체들의 공통점을 모두 가지고 있고, Sprite, Label 등의 클래스는 이 클래스를 상속받습니다. ==상속관계== 어느 클래스로부터도 상속받지 않은 클래스입니다. ==멤버 변수== {| class="wikitable" | style="width:100px; background-color:#f0f0f0"|이름 | style="background-color:#f0f0f0"|설명 |- |id||객체를 구별하기 위한 유일한 아이디입니다. |- |type||종류를 나타냅니다. 상속받지 않는 한은 "Node" 가 저장됩니다. |- |node||실제 cocos2d 객체를 가르킵니다. 프리뷰에서는 사용할 수 없습니다. 이 객체에 대해 사용할 수 있는 함수는 [http://www.cocos2d-x.org/reference/native-cpp/V2.2/d0/ded/classcocos2d_1_1_c_c_node.html] 을 참고해 주십시오. |- |drawOrder||프리뷰에서 사용할 노드를 그릴 순서입니다. |- |touchPriority||터치 우선순위입니다. |} ==멤버 함수== {| class="wikitable" | style="width:100px; background-color:#f0f0f0"|이름 | style="background-color:#f0f0f0"|설명 |- |init(id)||id 를 아이디로 노드를 초기화합니다. 이 함수에서는 initialize() 를 호출합니다. |- |registOnExit(id,func)||노드가 삭제될 때 작동시킬 이벤트를 등록합니다. |- |unregistOnExit(id,justOne)||노드가 삭제될 때 작동시킬 이벤트를 등록 해제합니다. |- |initEventHandler()||이벤트핸들러를 초기화합니다. |- |serialize(t)||t를 직렬화하여 반환합니다. t가 없을 경우, 이 노드를 직렬화하여 반환합니다. |- |OverrideDefault(v)||v의 값을 기본값으로 초기화합니다. |- |gen(v)||v의 정보로 노드를 생성합니다. |- |initialize()||디폴트 값으로 노드를 생성합니다. |- |release()||이 노드의 레퍼런스 카운트를 1 감소시킵니다. |- |runAction(obj)||등록한 액션을 실행합니다. |- |changeId(newId)||이 노드의 고유 id 를 변경합니다. |- |retain()||이 노드의 레퍼런스 카운트를 1 증가시킵니다. |- |setBlendMode(blendMode)||현재 노드가 Sprite 일때만 유효합니다. 지정한 blendMode 로 변경합니다. blendMode 의 값은 "기본", "더하기", "빼기", "배타", "곱하기", "반전", "스크린", "선광원" 중 하나입니다. |- |setIncludeScreenShot(b)||스크린샷에 포함할 지 여부를 설정합니다. |- |setZ(z)||z축 값을 설정합니다. |- |setFlip(x,y)||반전을 설정합니다. x 와 y 는 각각 boolean 값입니다. |- |setVisible(v)||화면에 표시중인 상태를 변경합니다. |- |isVisible()||화면에 표시 중인지 여부를 반환합니다. |- |setPreserve(v)||"유지" 상태를 변경합니다. |- |removeSelf(cleanup)||현재 노드를 제거합니다. cleanup은 boolean이며, cleanup 이 true 이면, self.node도 nil 로 초기화합니다. |- |children()||이 노드의 자식들을 반환합니다. |- |setContentSize(x,y)||화면에 표기되는 영역의 크기를 설정합니다. |- |contentSize()||화면에 표기되는 영역의 크기를 반환합니다. |- |findChild(idx)||idx 의 아이디를 가진 자식을 반환합니다. |- |addChild(node)||node 를 이 노드의 자식으로 추가합니다. |- |removeChild(node)||node 를 이 노드의 자식에서 제거합니다. |- |removeAllChildren()||모든 자식을 제거합니다. |- |position()||이 노드의 위치를 반환합니다. |- |setAnchorPoint(x,y)||앵커포인트를 설정합니다. |- |anchor()||현재 앵커포인터를 반환합니다. |- |setPositionX(x)||X 좌표를 변경합니다. |- |setPositionY(y)||Y 좌표를 변경합니다. |- |setPosition(x,y)||좌표를 변경합니다. |- |setScaleX(x)||X 축 확대비율을 변경합니다. |- |setScaleY(y)||Y 축 확대비율을 변경합니다. |- |setScale(x,y)||확대비율을 변경합니다. |- |scale()||확대비율을 반환합니다. |- |parentSize()||부모 노드의 크기를 반화합니다. 부모가 없을 경우, 화면의 크기를 반환합니다. |- |parentsNodeScale(node)||부모 노드의 크기를 반환합니다. |- |setColor(r,g,b)||색을 변경합니다. |- |getColor()||색을 반환합니다. |- |setOpacity(a)||투명도를 설정합니다. |- |setRotate(angle)||회전각도를 설정합니다. |- |getRotate()||현재 회전각도를 얻어옵니다. |- |ActiveActions()||작동 중인 액션 갯수를 반환합니다. |- |StopAction()||이 노드에 작동 중인 모든 액션을 중지합니다. |- |setFlippedY(b)||Y 축 반전을 설정합니다. b 는 boolean 값입니다. |} ==예제== ===태양계 예제=== <lnx> local function m(XVM) print ("loaded ok") local rootNode = pini.Node("rootNode") pini:AttachDisplay(rootNode) rootNode:setAnchorPoint(0.5,0.5) rootNode:setScale(1.0,1.0) rootNode:setPosition(400,300) local sunNode = pini.Sprite("sun","blue.png",nil) pini:AttachDisplay(sunNode,"rootNode") sunNode:setAnchorPoint(0.5,0.5) sunNode:setScale(2.0,2.0) sunNode:setPosition(0,0) sunNode:setColor(255,243,28) sunNode:runAction(cc.RepeatForever:create(cc.RotateBy:create(0.3,90))) local venusAnchorNode = pini.Node("venusAnchorNode") pini:AttachDisplay(venusAnchorNode,"rootNode") venusAnchorNode:setAnchorPoint(0.5,0.5) venusAnchorNode:setScale(1.0,1.0) venusAnchorNode:setPosition(0,0) venusAnchorNode:runAction(cc.RepeatForever:create(cc.RotateBy:create(3,90))) local venusNode = pini.Sprite("venus","blue.png",nil) pini:AttachDisplay(venusNode,"venusAnchorNode") venusNode:setAnchorPoint(0.5,0.5) venusNode:setScale(1.0,1.0) venusNode:setPosition(100,0) venusNode:setColor(17,255,255) venusNode:runAction(cc.RepeatForever:create(cc.RotateBy:create(0.7,90))) local earthAnchorNode = pini.Node("earthAnchorNode") pini:AttachDisplay(earthAnchorNode,"rootNode") earthAnchorNode:setAnchorPoint(0.5,0.5) earthAnchorNode:setScale(1.0,1.0) earthAnchorNode:setPosition(0,0) earthAnchorNode:runAction(cc.RepeatForever:create(cc.RotateBy:create(7,90))) local earthRootNode = pini.Node("earthRootNode") pini:AttachDisplay(earthRootNode,"earthAnchorNode") earthRootNode:setAnchorPoint(0.5,0.5) earthRootNode:setScale(1.0,1.0) earthRootNode:setPosition(250,0) local earthNode = pini.Sprite("earthNode","blue.png",nil) pini:AttachDisplay(earthNode,"earthRootNode") earthNode:setAnchorPoint(0.5,0.5) earthNode:setScale(1.0,1.0) earthNode:setPosition(0,0) earthNode:setColor(47,151,255) earthNode:runAction(cc.RepeatForever:create(cc.RotateBy:create(0.3,90))) local moonAnchorNode = pini.Node("moonAnchorNode") pini:AttachDisplay(moonAnchorNode,"earthRootNode") moonAnchorNode:setAnchorPoint(0.5,0.5) moonAnchorNode:setScale(1.0,1.0) moonAnchorNode:setPosition(0,0) moonAnchorNode:runAction(cc.RepeatForever:create(cc.RotateBy:create(1.7,90))) local moonNode = pini.Sprite("moonNode","blue.png",nil) pini:AttachDisplay(moonNode,"moonAnchorNode") moonNode:setAnchorPoint(0.5,0.5) moonNode:setScale(0.5,0.5) moonNode:setPosition(70,0) moonNode:setColor(160,160,160) moonNode:runAction(cc.RepeatForever:create(cc.RotateBy:create(1.5,90))) print ("step 1") end return m </lnx> ※ cc.RepeatForever 에 관련된 내용은 http://www.cocos2d-x.org/reference/native-cpp/V3.0rc1/d9/d37/classcocos2d_1_1_repeat_forever.html 를 참고해 주세요. ※ cc.RotateBy 에 관련된 내용은 http://www.cocos2d-x.org/reference/native-cpp/V3.0rc1/d0/d28/classcocos2d_1_1_rotate_by.html 를 참고해 주세요. ===사용코드=== <lnx>[스크립트 실행="아니오" 파일명="Solar_System.lua" ]</lnx> ※ 이 예제는 매크로 등록 및 사용이 아닌, 스크립트를 불러오자마자 작동하는 예제이므로, lua 와 짝이 되는 lnx 파일을 없습니다. ===결과=== http://i.imgur.com/HCZvXf4.gif PiniApi:Node 문서로 돌아갑니다.