IOS cocos2d学习笔记-<四>Menu&MenuItem

本文详细介绍了Cocos2d-x中CCMenu及其相关组件的使用方法,包括CCMenuItem、CCMenuItemFont等类的基本操作及注意事项,并通过实例展示了如何创建一个可交互的按钮菜单。

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


(本文写作基于千锋3g学院提供的第三季讲授视频编写,更多资料和资源下载地址请看笔记扉页:传送门


看一下图先。


今天我们进入到游戏开始页面,用到菜单栏CCMenu

终于有个可以碰的东西了,感觉有点摩拳擦掌了对吧?

CCMenu的用处挺广泛的,可设置的东西也地方也很多,我们这里写写基本的用法。

首先我们要了解几个类的继承关系:

(取自原教学视频)

我们今天的重点是:

CCMenuItem

CCMenuItemFont

CCMenuItemSprite

CCMenuItemImage

CCMenu(继承于CCLayer)

总结一下这几个类的使用关系和相应创建和设置方法


(文字打出来发表之后会变样,还是用图片吧。。)


总体来说菜单(CCMenu)里面可以加入纯字体(CCMenuItemLabel)以及图片(CCMenuItemSprite)两种菜单选项(CCMenuItem)

然后是关于CCMenu的设置:

1-注意+(id)menuWithItems:方法可以一次插入多个CCMenuItem对象,最后必须以nil作为结束:

   如:[CCMenu menuWithItems: CCMenuItem1, CCMenuItem2, ....., nil ];

2-(void) setPosition:设置位置

3.如果菜单仲插入多个选项,则需要设置排列方式,水平排列或者是竖直排列。

 -(void) alignItemsHorizontally(WithPadding:) 

 -(void) alignItemsVertically(WithPadding:)

里面的Padding是Items之间的间隔。

4.最后加入到场景或者图层当中,使用CCNode的方法-(void) addChild:


这就可以创建一个可以按的按钮菜单了。

其中说明一下CCMenuItemSprite中的一些使用问题:

我们看到+(id)itemFromNormalSprite:(CCNode<CCRBGAProtocol> *) 

selectedSprite:(CCNode<CCRBGAProtocol> *)

target:self

selector:(SEL)

这个方法里面的(CCNode<CCRBGAProtocol>*)这个参数类型,这里是使用了一些关于着色的代理,我们只需要给它传进一个CCSprite对象就可以了

selectedSprite:选择时显示的图片,可为空nil。但有一点要注意的是,你不可以重复使用已经使用在NormalSprite作为参数的CCSprite对象,你必须为这两个参数分别创建两个CCSprite对象。

为了按起来有点动感,本人用同一张图片创建了两个大小不一样的两个CCSprite对象作为开始按钮的两个参数。这里就出现一个问题了,之前所说过的一个锚点貌似在这里没有发挥作用,当我点击菜单按钮时,图片的确是变大了,但它的锚点始终在cpp(0, 0)处,以致于变大之后很不自然地“走位”了。之后我就把后面的图缩放的比例调到1.03,勉强还可以看一下。= =现在还在纠结中。

最后贴一篇详解文章:这里这里


<think>我们正在讨论Cocos2d-x 3.17.2的环境配置,特别是运行setup.py脚本后的环境变量配置。 根据之前的内容,运行setup.py是为了设置Cocos2d-x开发所需的环境变量,包括NDK_ROOT, ANDROID_SDK_ROOT, ANT_ROOT(如果使用)等。 运行setup.py后,它会提示用户输入这些路径,然后将这些路径写入到用户主目录下的一个配置文件(例如.bash_profile或.cocos2d-x_env.ini等)中,并可能添加到系统环境变量中(具体取决于操作系统和脚本的实现)。 但是,需要注意的是,setup.py脚本在Cocos2d-x 3.17.2中可能只会在当前命令行会话中设置环境变量,或者将环境变量的设置命令写入到用户配置文件中(如.bashrc或.profile),以便在每次打开终端时自动设置。 具体步骤和说明: 1. 运行setup.py: 在Cocos2d-x根目录下,执行: ```bash python setup.py ``` 2. 根据提示输入路径: 脚本会依次提示输入以下路径(如果不需要可以留空,但安卓开发需要前两个): - ANDROID_SDK_ROOT:Android SDK的安装路径 - NDK_ROOT:Android NDK的安装路径 - ANT_ROOT:Apache Ant的安装路径(可选,因为现在大多使用Gradle) 3. 脚本执行后: - 对于Windows系统:脚本可能会将环境变量写入到注册表,或者生成一个批处理文件(.bat)供用户运行以设置临时环境变量。但更常见的是,它会提示用户手动设置环境变量(通过系统属性->高级->环境变量)。 - 对于Linux/macOS系统:脚本通常会将环境变量设置命令写入到用户主目录下的.bashrc、.bash_profile或.profile文件中,这样每次打开终端都会自动设置。 4. 如何验证环境变量已设置? 打开一个新的命令行窗口(确保重新加载了配置文件),输入: ```bash echo $ANDROID_SDK_ROOT # Linux/macOS echo %ANDROID_SDK_ROOT% # Windows(在cmd中) ``` 或者使用cocos命令: ```bash cocos --version ``` 如果输出了Cocos2d-x的版本信息,则说明环境变量配置成功。 5. 如果环境变量没有生效怎么办? - 检查是否在运行setup.py后重新启动了命令行窗口(因为新的环境变量需要新的会话才能加载)。 - 检查脚本是否将环境变量设置命令写入了正确的配置文件(如.bashrc等),并确保该配置文件被终端加载。 - 手动将环境变量添加到系统环境变量中(特别是Windows用户)。 6. 手动设置环境变量(以Windows为例): 右键“此电脑”->属性->高级系统设置->环境变量,在“系统变量”中新建: - 变量名:ANDROID_SDK_ROOT,变量值:SDK安装路径(如C:\android-sdk) - 变量名:NDK_ROOT,变量值:NDK安装路径(如C:\android-ndk-r16b) - 变量名:ANT_ROOT,变量值:Ant安装路径(如C:\apache-ant-1.9.16,可选) 然后,将Cocos2d-x的根目录下的tools\cocos2d-console\bin和tools\cocos2d-console\plugins目录添加到PATH环境变量中(这样可以在任意目录使用cocos命令)。 7. 对于Linux/macOS,可以手动将以下内容添加到~/.bashrc或~/.bash_profile中: ```bash export ANDROID_SDK_ROOT=/path/to/android-sdk export NDK_ROOT=/path/to/android-ndk-r16b export ANT_ROOT=/path/to/ant # 可选 export PATH=$PATH:/path/to/cocos2d-x-3.17.2/tools/cocos2d-console/bin ``` 然后运行`source ~/.bashrc`(或重启终端)使配置生效。 注意:Cocos2d-x 3.17.2要求NDK版本为r16b,SDK的API level至少为29(即android-29)。 引用[1]中提到了在Windows下使用VS2015和Cocos2d-x-3.17.2搭建开发环境,其中包括了修改项目名称和包名等步骤,但环境变量配置是通用的。 因此,运行setup.py后,我们主要需要确保环境变量设置正确且已生效,这样后续的编译命令(如`cocos compile`)才能正确执行。 如果用户按照上述步骤操作后仍然无法生效,可能需要检查路径是否正确,以及是否有权限修改环境变量。 生成相关问题: 1. 运行setup.py后环境变量没有生效怎么办? 2. 如何验证Cocos2d-x的环境变量配置是否正确? 3. Cocos2d-x 3.17.2 要求哪些特定版本的工具(如NDK、SDK)? 4. 在Windows系统中如何永久设置Cocos2d-x所需的环境变量?</think>### Cocos2d-x 3.17.2 运行 setup.py 后的环境变量配置说明 运行 `setup.py` 是配置 Cocos2d-x 开发环境的关键步骤,它会引导你设置必需的环境变量并生成配置文件。以下是详细说明: #### 一、运行 setup.py 的过程 在 Cocos2d-x 根目录执行: ```bash python setup.py ``` 脚本会依次提示输入以下路径(按回车跳过不需要的项): ``` 1. 输入 Android SDK 路径 (ANDROID_SDK_ROOT) 2. 输入 Android NDK 路径 (NDK_ROOT) 3. 输入 Apache Ant 路径 (ANT_ROOT) 4. 输入 Python 路径 (留空则使用系统默认) ``` #### 二、环境变量配置说明 脚本会创建以下环境变量(以 Windows 为例): | 环境变量名 | 作用描述 | 示例值 | |--------------------|--------------------------------------------------------------------------|--------------------------------| | `COCOS_CONSOLE_ROOT` | Cocos 命令行工具路径 | `C:\cocos2d-x-3.17.2\tools\cocos2d-console\bin` | | `NDK_ROOT` | Android NDK 路径(编译 C++ 代码必需) | `C:\android-ndk-r16b` | | `ANDROID_SDK_ROOT` | Android SDK 路径(构建 APK 必需) | `C:\Android\Sdk` | | `ANT_ROOT` | Apache Ant 路径(旧版构建工具,3.17.2 中可省略) | `C:\apache-ant-1.10.1\bin` | #### 三、配置文件生成位置 脚本会在用户目录生成配置文件: - **Windows**: `C:\Users\<用户名>\.cocos2d-x-3.17.2\setup_env.bat` - **Linux/macOS**: `~/.cocos2d-x-3.17.2/setup_env.sh` 文件内容示例(Windows): ```bat @echo off set COCOS_CONSOLE_ROOT=C:\cocos2d-x-3.17.2\tools\cocos2d-console\bin set NDK_ROOT=C:\android-ndk-r16b set ANDROID_SDK_ROOT=C:\Android\Sdk set ANT_ROOT=C:\apache-ant-1.10.1\bin set PATH=%COCOS_CONSOLE_ROOT%;%NDK_ROOT%;%ANDROID_SDK_ROOT%;%ANT_ROOT%;%PATH% ``` #### 、环境变量生效方法 1. **临时生效**(当前命令行窗口): ```bash # Windows call %USERPROFILE%\.cocos2d-x-3.17.2\setup_env.bat # Linux/macOS source ~/.cocos2d-x-3.17.2/setup_env.sh ``` 2. **永久生效**(推荐): - **Windows**:将 `setup_env.bat` 内容复制到系统环境变量设置 1. Win+R → 输入 `sysdm.cpl` → 高级 → 环境变量 2. 在 **系统变量** 中添加上述变量 - **Linux/macOS**:将以下代码添加到 `~/.bashrc` 或 `~/.zshrc` ```bash source ~/.cocos2d-x-3.17.2/setup_env.sh ``` #### 五、验证配置 ```bash cocos --version ``` 成功输出示例: ``` Cocos Console 2.3 Cocos2d-x 3.17.2 ``` > **注意**:若使用 Android Studio 开发,还需在 `local.properties` 中添加: > ```properties > sdk.dir=C\:\\Android\\Sdk > ndk.dir=C\:\\android-ndk-r16b > ``` #### 六、常见问题处理 1. **路径包含空格**: 若 SDK/NDK 路径有空格(如 `Program Files`),需使用 **8.3 短路径格式**: ```bash # 查询短路径(Windows) dir /x C:\Progra~1 ``` 在配置中使用 `C:\Progra~1\Android` 格式 2. **环境变量未生效**: ```bash # 检查所有环境变量 cocos env --show ``` 3. **NDK 版本不兼容**: 必须使用 **NDK r16b**,其他版本可能导致编译失败[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值