#include "HelloWorldScene.h"
#include "SimpleAudioEngine.h"
using namespace cocos2d;
using namespace CocosDenshion;
USING_NS_CC_EXT;
CCScene* HelloWorld::scene()
{
// 'scene' is an autorelease object
CCScene *scene = CCScene::create();
// 'layer' is an autorelease object
HelloWorld *layer = HelloWorld::create();
// add layer as a child to scene
scene->addChild(layer);
// return the scene
return scene;
}
// on "init" you need to initialize your instance
bool HelloWorld::init()
{
//////////////////////////////
// 1. super init first
if ( !CCLayer::init() )
{
return false;
}
/////////////////////////////
// 2. add a menu item with "X" image, which is clicked to quit the program
// you may modify it.
// add a "close" icon to exit the progress. it's an autorelease object
CCMenuItemImage *pCloseItem = CCMenuItemImage::create(
"CloseNormal.png",
"CloseSelected.png",
this,
menu_selector(HelloWorld::menuCloseCallback) );
pCloseItem->setPosition( ccp(CCDirector::sharedDirector()->getWinSize().width - 20, 20) );
// create menu, it's an autorelease object
CCMenu* pMenu = CCMenu::create(pCloseItem, NULL);
pMenu->setPosition( CCPointZero );
this->addChild(pMenu, 1);
/////////////////////////////
// 3. add your codes below...
// add a label shows "Hello World"
// create and initialize a label
pLabel = CCLabelTTF::create("Hello World", "Thonburi", 34);
// ask director the window size
CCSize size = CCDirector::sharedDirector()->getWinSize();
// position the label on the center of the screen
pLabel->setPosition( ccp(size.width / 2, size.height - 20) );
// add the label as a child to this layer
this->addChild(pLabel, 1);
// CCScrollView
scrollView = CCScrollView::create();
CCLayer *layer = CCLayer::create();
CCSprite *sprite1 = CCSprite::create("HelloWorld.png");
CCSprite *sprite2 = CCSprite::create("HelloWorld.png");
layer->setAnchorPoint(CCPointZero);
layer->setPosition(CCPointZero);
CCMenuItemSprite *menuItem1 = CCMenuItemSprite::create(sprite1, sprite1, this, menu_selector(HelloWorld::menuCloseCallback));
menuItem1->setPosition(ccpAdd(CCPointZero, ccp(size.width / 2, size.height / 2)));
menuItem1->setScale(0.4f);
CCMenuItemSprite *menuItem2 = CCMenuItemSprite::create(sprite2, sprite2, this, menu_selector(HelloWorld::menuCloseCallback));
menuItem2->setPosition(ccpAdd(ccp(480, 0), ccp(size.width / 2, size.height / 2)));
menuItem2->setScale(0.4f);
CCMenu *menu = CCMenu::create(menuItem1, menuItem2, NULL);
menu->setPosition(CCPointZero);
layer->addChild(menu);
scrollView->setPosition(CCPointZero);
scrollView->setContentOffset(CCPointZero);
layer->setContentSize(CCSizeMake(960, 320));
scrollView->setContentSize(CCSizeMake(480, 320));
scrollView->setContainer(layer);
scrollView->setDirection(kCCScrollViewDirectionHorizontal);
scrollView->setDelegate(this);
this->addChild(scrollView);
return true;
}
void HelloWorld::menuCloseCallback(CCObject* pSender)
{
CCDirector::sharedDirector()->end();
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
exit(0);
#endif
}
void HelloWorld::scrollViewDidScroll(cocos2d::extension::CCScrollView *view)
{
}
void HelloWorld::scrollViewDidZoom(cocos2d::extension::CCScrollView *view)
{
}
void HelloWorld::onEnter()
{
CCLayer::onEnter();
// 这里的第三个参数一定要设置成false,
// true 即HelloWorld层吞噬掉触摸事件
// false 即HelloWorld层与CCScrollView对象先后处理触摸事件
CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this, 1, false);
}
void HelloWorld::onExit()
{
CCDirector::sharedDirector()->getTouchDispatcher()->removeDelegate(this);
CCLayer::onExit();
}
bool HelloWorld::ccTouchBegan(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent)
{
return true;
}
void HelloWorld::ccTouchMoved(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent)
{
CCLOG("move");
}
void HelloWorld::ccTouchEnded(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent)
{
adjustScrollView();
}
void HelloWorld::ccTouchCancelled(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent)
{
adjustScrollView();
}
void HelloWorld::adjustScrollView()
{
scrollView->unscheduleAllSelectors();
int x = scrollView->getContentOffset().x;
int offset = (int) x % 480;
CCPoint adjustPos;
float adjustAnimDelay;
if (offset < -240)
{
adjustPos = ccpSub(scrollView->getContentOffset(), ccp(480 + offset, 0));
adjustAnimDelay = (float) (480 + offset) / ADJUST_ANIM_VELOCITY;
}
else
{
adjustPos = ccpSub(scrollView->getContentOffset(), ccp(offset, 0));
adjustAnimDelay = (float) abs(offset) / ADJUST_ANIM_VELOCITY;
}
scrollView->setContentOffsetInDuration(adjustPos, adjustAnimDelay);
}
void HelloWorld::menu1Callback(cocos2d::CCNode *pSender)
{
CCLOG("menu1Callback");
}
void HelloWorld::menu2Callback(cocos2d::CCNode *pSender)
{
CCLOG("menu2Callback");
}
没有合适的资源?快使用搜索试试~ 我知道了~
cocos2d-x for WP8 CCScrollView 实例
共39个文件
png:19个
h:5个
cpp:5个
5星 · 超过95%的资源 需积分: 9 29 下载量 149 浏览量
2013-10-23
14:17:21
上传
评论
收藏 1.9MB RAR 举报
温馨提示
cocos2d-x for WP8 CCScrollView 实例 基于 2.2的版本
资源推荐
资源详情
资源评论
收起资源包目录
MyGame.rar (39个子文件)
proj.wp8
MyGame.h 2KB
MyGame.v11.suo 49KB
MyGame.vcxproj.user 258B
Assets
Resources
background.jpg 126KB
button_selected.png 9KB
CloseSelected.png 5KB
fonts
arial.ttf 760KB
Marker Felt.ttf 25KB
CloseNormal.png 6KB
HelloWorld.png 136KB
bg_01.png 354KB
bg_03.png 95KB
listitem.png 146KB
btn
btnStartGameNor.png 5KB
btnStartGameDown.png 5KB
button_normal.png 8KB
baseResource.plist 23KB
bg_02.png 474KB
listitem2.png 133KB
Tiles
IconicTileSmall.png 4KB
IconicTileMediumLarge.png 5KB
FlipCycleTileSmall.png 4KB
FlipCycleTileLarge.png 10KB
FlipCycleTileMedium.png 9KB
ApplicationIcon.png 3KB
AlignmentGrid.png 9KB
MyGame.sln 9KB
MyGame.vcxproj.filters 4KB
MyGame.vcxproj 15KB
WMAppManifest.xml 2KB
MyGame.cpp 5KB
Classes
GalleryLayer.h 984B
AppDelegate.cpp 1KB
HelloWorldScene.h 1KB
AppDelegate.h 955B
HelloWorldScene.cpp 5KB
GalleryLayer.cpp 4KB
ListViewLayer.h 994B
ListViewLayer.cpp 2KB
共 39 条
- 1
资源评论
- taobao8888882018-10-27学习下学习的话
- snkitti2014-03-28不全,加油
- 老柿子树2014-01-03不全,加油
- bobo8892014-04-22不全,运行不了
裸奔的牛
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功