Cocos2dx-lua,工作记录

5/31/2021 Cocos2dxLuaCocos Studio

# 坐标

默认以左下角为原点计算坐标

# clone函数的使用

能被clone的对象必须是Widget的子类,否则无效

精灵(Sprite)并不继承自Widget,所以它不能被cloneNode同理

# ListView

  • 子节点必须是Widget的子类
  • 常用方法:
  -- 1.设置滚动条不启用
  listView:setScrollBarEnabled(false)
  -- 2.获取内部滚动容器的位置(可用来计算子节点相对位置)
  --[[
    子节点相对位置的判断,也可通过子节点坐标转化为世界坐标(convertToWorldSpace),
    再转变为其他子节点下的本地坐标(convertToNodeSpace)来计算
  ]] 
  listView:getInnerContainerPosition()

  -- 3.设置Text显示宽度,比如自动换行
  text:setTextAreaSize(cc.size(100, 0))
  -- 4.设置图片大小为原始尺寸,不固定大小
  img:ignoreContentAdaptWithSize(true)
1
2
3
4
5
6
7
8
9
10
11
12
13

# 注册点击事件

  1. 方式一:节点必须继承自Widget组件
self.widgetNode:addTouchEventListener(function(sender, state)
    if state == 0 then
        print("start")           
    elseif state == 1 then
        print("move")   
    elseif state == 2 then
        print("ended")            
    else -- 3
        print("canceled")            
    end
end) 
1
2
3
4
5
6
7
8
9
10
11
  1. 方式二:这种方式比较复杂点,针对Node都可以
-- 触摸开始
local function onTouchBegan(touch, event)
    -- 只有当onTouchBegan的返回值是true时才执行后面的两个触摸事件
    return true
end

local function onTouchMove(touch, event)
    -- 获取点击位置
    local location = touch:getLocation()
    print(location.x .. "  "..location.y)
end

-- 触摸结束
local function onTouchEnd(touch, event)
    -- 获取点击位置
    local location = touch:getLocation()
    print(location.x .. "  "..location.y)
end

local listener = cc.EventListenerTouchOneByOne:create()
-- 注册两个回调监听方法
listener:registerScriptHandler(onTouchBegan,cc.Handler.EVENT_TOUCH_BEGAN)
listener:registerScriptHandler(onTouchMove,cc.Handler.EVENT_TOUCH_MOVED)
listener:registerScriptHandler(onTouchEnd,cc.Handler.EVENT_TOUCH_ENDED)
listener:registerScriptHandler(onTouchEnd,cc.Handler.EVENT_TOUCH_CANCELLED)
local eventDispatcher = cc.Director:getInstance():getEventDispatcher()-- 事件派发器
-- 绑定触摸事件到层当中
-- node:监听器的优先级基于此节点的绘制顺序。
eventDispatcher:addEventListenerWithSceneGraphPriority(listener, node)
-- 移除事件
-- eventDispatcher:removeEventListener(listener)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

# 个人博客:远近相安 (opens new window)

上次更新: 09/29/2021 09:56:16