cocos2dx lua 动画

本文介绍了在Cocos2d-x中使用Lua语言如何创建和播放动画。通过加载`loading_effect.plist`和`loading.plist`文件,创建了一个名为`animation_loading`的动画效果,展示了如何设置精灵帧缓存、动画缓存,以及如何添加和播放动画帧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


--方法1

local spriteFrameCache= cc.SpriteFrameCache:getInstance();

local animationCache= cc.AnimationCache:getInstance();

spriteFrameCache:addSpriteFrames("Effect/loading.plist");

animationCache :addAnimations ("Effect/loading_effect.plist");

local animation_loading= cc.AnimationCache:getInstance():getAnimation("animation_loading")

self.animationLoading = cc.Sprite:create();

self.animationLoading:setPosition( cc.p(viewSize.width/2, viewSize.height/2));

self.Layer :addChild ( self.animationLoading);

self.animationLoading:runAction( cc.RepeatForever:create(cc.Animate:create(animation_loading) ) );

--方法2

--[[

local spriteFrameCache= cc.SpriteFrameCache:getInstance();

spriteFrameCache:addSpriteFrames("Effect/loading.plist","Effect/loading.png");


self.animationLoading = cc.Sprite:create();

self.animationLoading:setPosition( cc.p(viewSize.width/2, viewSize.height/2));

self.Layer : addChild ( self.animationLoading);

local animFrames = {};
for i=1,59 do
if i<10 then
local frame = spriteFrameCache:getSpriteFrame( string.format("loading_00%02d.png", i) );
animFrames[i] = frame;
end
local frame = spriteFrameCache:getSpriteFrame( string.format("loading_0%02d.png", i) );
animFrames[i] = frame;
end
local animation = cc.Animation:createWithSpriteFrames(animFrames, 0.03);  
self.animationLoading:runAction( cc.RepeatForever:create(cc.Animate:create(animation) ) );

]]


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

loading_effect.plist文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>animations</key>
<dict>


<!-- Loading特效 -->
<key>animation_loading</key>
<dict>
<key>delay</key>
<real>0.03</real>
<key>frames</key>
<array>
<string>loading_000.png</string>
<string>loading_001.png</string>

....

<string>loading_059.png</string>


</array>
</dict>


</dict>
</dict>
</plist>


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

loading_.plist文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>frames</key>
        <dict>
            <key>loading_000.png</key>
            <dict>
                <key>frame</key>
                <string>{{508,84},{1,1}}</string>
                <key>offset</key>
                <string>{-99.5,99.5}</string>
                <key>rotated</key>
                <false/>
                <key>sourceColorRect</key>
                <string>{{0,0},{1,1}}</string>
                <key>sourceSize</key>
                <string>{200,200}</string>
            </dict>

......................



            <key>loading_059.png</key>
            <dict>
                <key>frame</key>
                <string>{{508,84},{1,1}}</string>
                <key>offset</key>
                <string>{-99.5,99.5}</string>
                <key>rotated</key>
                <false/>
                <key>sourceColorRect</key>
                <string>{{0,0},{1,1}}</string>
                <key>sourceSize</key>
                <string>{200,200}</string>
            </dict>
        </dict>
        <key>metadata</key>
        <dict>
            <key>format</key>
            <integer>2</integer>
            <key>realTextureFileName</key>
            <string>loading.png</string>
            <key>size</key>
            <string>{512,512}</string>
            <key>smartupdate</key>
            <string>$TexturePacker:SmartUpdate:0e9839b17b099fb41aef47a1984b0b09$</string>
            <key>textureFileName</key>
            <string>loading.png</string>
        </dict>
    </dict>
</plist>


loading.plist

loading.png

用TexturePackerGUI工具生成的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值