[cocos2d-x教程之 Hero教你打灰机] 如何制作一个虚拟摇杆



一、 前言

         很多大型游戏里 都采用了虚拟摇杆 ,即 手触摸 屏幕 才出现 摇杆,一方面 使 玩家更易操作, 另一方面则是使得 游戏的视觉变得更加酷炫 。这一篇教程就告诉大家如何 完成制作 一个 虚拟摇杆。


二、 图片准备

         笔者 不太精通ps,也没有费时间去画图了。只用了两个简单的有填充色的 圆形作为 摇杆的组成部分。 小圆代表摇杆,大圆代表摇杆的底座。

           

三、 一些构想

       首先把这个摇杆定位为一个飞行射击游戏的摇杆。即摇杆需要实现 飞机主角的移动。

       所以,大体上这就是一个点击屏幕会出现的虚拟摇杆。但是,考虑到一般飞行射击游戏 的玩家惯用 左手进行飞行操作,所以我们把点击出现虚拟摇杆的触摸区域定在左边的一块矩形 区域 。 屏幕右边的区域 用于 点击屏幕触摸  发射 子弹等 功能性 道具使用。  

      这里又有一个问题。

      一个固定大小的虚拟摇杆 可能会 不能满足玩家的需要。 不少玩家在 操纵摇杆时 手指会超出摇杆的范围(这也是玩游戏的人之常情嘛,总不能 让别人 正激动的时候 就 不让别人 操纵的摇杆了吧 。)


四、代码实现

        想到这里我就先直接上代码了吧。。

#ifndef __YAOGAN_SCENE_H__
#define __YAOGAN_SCENE_H__

#include "cocos2d.h"

#include "SimpleAudioEngine.h"

using namespace cocos2d;

class Yaogan : public cocos2d::CCLayer
{
public:
	
	// Here's a difference. Method 'init' in cocos2d-x returns bool, instead of returning 'id' in cocos2d-iphone
	
	CCSprite* jianpan_back;
	CCSprite* jianpan;
	
	int press_type ;//0-still 1-up 2-down 3-left 4-right 
	
	float anchor_bx;
	float anchor_by;
	float anchor_x;
	float anchor_y;

	virtual bool init();  

	// there's no 'id' in cpp, so we recommand to return the exactly class pointer
	static cocos2d::CCScene* scene();

	// a selector callback
	
	//che
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值