(→사용코드) |
(→태양계 예제) |
||
207번째 줄: | 207번째 줄: | ||
return m | return m | ||
</lnx> | </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 를 참고해 주세요. | ||
===사용코드=== | ===사용코드=== |
2015년 9월 1일 (화) 16:24 판
Node
개요
Node 클래스는 화면에 표기되는 모든 객체의 기본 클래스입니다. 기본적으로 화면에 표기되는 객체들의 공통점을 모두 가지고 있고, Sprite, Label 등의 클래스는 이 클래스를 상속받습니다.
멤버 변수
이름 | 설명 |
id | 객체를 구별하기 위한 유일한 아이디입니다. |
type | 종류를 나타냅니다. 상속받지 않는 한은 "Node" 가 저장됩니다. |
node | 실제 cocos2d 객체를 가르킵니다. 프리뷰에서는 사용할 수 없습니다. 이 객체에 대해 사용할 수 있는 함수는 [1] 을 참고해 주십시오. |
drawOrder | 프리뷰에서 사용할 노드를 그릴 순서입니다. |
touchPriority | 터치 우선순위입니다. |
멤버 함수
이름 | 설명 |
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 |
※ 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" ] |
※ 이 예제는 매크로 등록 및 사용이 아닌, 스크립트를 불러오자마자 작동하는 예제이므로, lua 와 짝이 되는 lnx 파일을 없습니다.
결과