Quick-Cocos2dx 3.3中关于cc.ScaleTo动作不能得到预期效果

  在开发过程中需要做一个动画,使用的是一个宽高比为1:2的长方形图片,形态是一个框子;想使它按照1:1宽高比从指定大小放大到一定倍数。

  最开始使用的方法:

local frm = display.newSprite(‘#frm.png‘) --宽高比为1:2的长方形框子
local frmSize = frm:getContentSize()
local iconw, iconh = 100, 100
local scale = 2.5  --预期放大倍数
local time = 0.2   --动画执行时间

frm:setScale(iconw / frmSize.width, iconh / frmSize.height)
frm:setContentSize(iconw, iconh)

transition.execute(frm, cc.ScaleTo:create(time, scale))

但是发现放大后并没有保持1:1宽高比,因为已经使用setScale和setContentSize将它变成正方形了啊。

为什么?原因只能是放大过程中,setContentSize函数失效了。想起来CCNode:setScale()函数的注释:setScale并不会改变一个node的contentSize。所以setContentSize是无效的,放大不会依据它的contentSize来计算。

改为如下就好了:

local frm = display.newSprite(‘#frm.png‘) --宽高比为1:2的长方形框子
local frmSize = frm:getContentSize()
local iconw, iconh = 100, 100
local scale = 2.5  --预期放大倍数
local time = 0.2   --动画执行时间

transition.execute(frm, cc.ScaleTo:create(time,
    scale * iconw / frmSize.width,
    scale * iconh / frmSize.height))
时间: 2024-11-11 02:26:22

Quick-Cocos2dx 3.3中关于cc.ScaleTo动作不能得到预期效果的相关文章

Quick Cocos2dx controller的初步实现

很久没有记笔记了,今天记一下,最近都在瞎忙活,都不知道自己干了些啥. 先来一张目前的效果图: 我的Controller是在官方的mvc sample的里面的PlayerDualController上更改的,所以很多地方还没来得及清理掉. 源码如下: 1 local PlayerController = class("PlayerController") 2 3 function PlayerController:ctor() 4 end 5 6 function PlayerContr

Quick Cocos2dx 调试问题

最近由于忙了一段时间,忙完了之后又迷茫了这么久,然后终于开始继续Quick-x的学习之路了. 然后遇到了一个比较棘手的问题. 虽然照着官方mvc的例子敲代码,但是还是不停的报错,报错的问题下次集结成一个帖子发出来好了. 今次记录的是对于错误的DEUG方面的问题. 我的首选当然是Eclipse + LDT了,因为从业是自java而始,继而是AS,用得最熟的莫过与FB了. 参考的是官方的文章: 用 Eclipse LDT 调试 quick-cocos2d-x 游戏 但是,进行到配置player的时候

quick cocos2dx 3.x 配置win32工程

公司项目主体部分用c++,而ui部分用lua写,所以选择了用quick框架.项目先开发了ios/mac版,这两天试着配置其win32工程,遇到一些问题,记录一下(纯c++版本cocos2dx配置方法应该也是类似的). 先配debug模式: 把c++文件都添到工程中去,并在附加包含目录下配置c++文件的搜索路径.然后编译会遇到一些问题: 一,win32下fullPathForFilename函数与ios/mac下行为不一致的问题. fullPathForFilename当传入的参数是文件夹路径时,

Quick Cocos2dx 场景对象基类实现

从使用Quick-Cocos2d-x搭建一个横版过关游戏(四)拷来个进度条类, 但是由于那个类有个bug,在setProgress里面self.fill是找不到的,所以我改进了一下,代码如下: 1 local Progress = class("Progress", function() 2 -- body 3 return display.newNode() 4 end) 5 6 function Progress:ctor(background, fill) 7 local pro

Quick Cocos2dx Http通讯

服务端:Python 通讯协议:Http 参考文章: 1 用python实现一个基本的http server服务器 http://blog.sina.com.cn/s/blog_416e30630100gjyk.html 2 http://stackoverflow.com/questions/8470414/strange-jquery-error-code-501-message-unsupported-method-options 由于是照着刀塔传奇的思路来做的,刀塔传奇是无需进行常连接的

Quick Cocos2dx 与 Eclipse 连真机debug遇到的问题

今天下午解决了因为偷懒一直忍受的两个让我不爽很久了的问题: 1Eclipse无法连接手机调试的问题. 在设备管理器中看到的Android设备有黄色的感叹号, 说明驱动不是最新的. 按照网上搜到的解决方案,去android sdk目录下的extra下面找搜索驱动来安装, 或者按照Adobe论坛上提供的方式去Flash Bulder目录下的utility文件夹下面去搞这搞那. 全特么不行啊. 幸好我天资聪颖,想了想,何不去搜索一下我手机对应的usb驱动呢, 于是在网上找到我手机对应的驱动, 更新了一

quick cocos2dx 游戏引擎lua调用oc代码实现本地推送

我在博客标题为“ios如何实现本地推送,兼容ios8“http://www.cnblogs.com/laoguigame/p/4522474.html的博文中介绍了通过oc代码实现本地推送的方法.现在介绍在lua中调用咱们之前写的oc方法接口来实现在lua层实现推送的功能,主要基于quick cocos2dx V3.3版本的引擎来实现.在quick中的luaoc.lua文件中实现了luaoc.callStaticMethod(className, methodName, args)接口,可以看出

用Quick Cocos2dx做一个连连看(一)

呵呵,不知道能不能坚持下来,先写着吧. 预备知识:Quick Cocos2dx 2.2.5基本知识 或者 Cocos2dx基本知识, lua入门 开发工具:Sublime Text 2.0/3.0 原型设计:Balsamiq Mockups 我们的效果图大概是这样子的: 可见,我们需要将连连看的元素抽出来作为一个类,这个类肯定是一个显示对象来的,我们给这个类设入一个类型值,就可以自动的刷新图片,设入行与列就可以自动的刷新其位置. 这个类如下: 1 local SpriteItem = class

Mac下搭建quick cocos2d-x编译环境

前言 虽然之前已经写过了很多 Cocos2d-x 相关的教程和文档,但本次却是我第一次接触 Quick,第一次接触 Lua,所以此次的教程本人将站在一个初学者的角度(看到这里是不是想白眼我了,哈哈,别切啊!尽管第一次,但我身边可是有很多 Quick 大神的,廖大大也在旁边办公室,没准撒个娇大神就把他知道的全部要点倾囊相授了啦!),全方位的解析 Quick 的学习过程,并同大家一起学习如何利用 Quick-Cocos2d-x 开发一款属于自己的游戏,包教包会的哦. 好了,那么下面我们就开始进入正题