亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

《你是我的小羊駝》游戲ios源碼

2019-11-14 19:36:16
字體:
來源:轉載
供稿:網友
<ignore_js_op>

<ignore_js_op>

<ignore_js_op>

<ignore_js_op>源碼下載:http://code.662p.com/view/8582.html

你可能注意到了,神經貓換成了可愛的小羊駝:)
在線游戲地址:http://app9.download.anzhuoshang ... ge&isappinstalled=0

游戲分析
三個界面基本上就是整個游戲的全部內容:
1.左邊的是主界面,展示游戲名稱以及主角,讓玩家對游戲的整體畫風有個大概的印象。
2.中間的是游戲界面,點擊空格防止橙色六邊形磚塊來圍堵小羊駝。
3.右邊的是游戲成功或失敗的界面。
整個游戲的主邏輯都在游戲界面中完成。
玩法是這樣:
1.游戲初始化開始,小羊駝始終是站在地圖中間,在地圖的其他區域隨機生產一些位置隨機的磚塊。
2.玩家點擊一個空白區域,放置一個磚塊來圍堵羊駝。
3.羊駝AI尋路移動一步。
4.循環2和3,直到羊駝被圍堵在一個圈里面(游戲成功),或羊駝到達地圖邊界(游戲失?。?br />整個游戲的思路理清楚了,接下來我們開始進入編碼階段。
開發環境與新建項目
本教程開發基于當前最新的Download v3.0RC1 .
下載引擎并解壓到磁盤的某個目錄。
打開控制臺,輸入下面的命令來新建項目。

$cd cocos2d-js-v3.0-rc1/tools/cocos2d-console/bin
$./cocos new -l js --no- native
$cd MyJSGame/
$../cocos run -p web
環境搭建并不是這篇文章的重點,更詳細的信息可以參考:《搭建 Cocos2d-JS 開發環境》
主界面實現
游戲的入口代碼在main.js中,用編輯器打開并修改為下面的代碼。

cc.game.onStart = function (){
// 1.
cc.view.adjustViewPort( true );

// 2.
if (cc.sys.isMobile)
cc.view.setDesignResolutionSize(320,500,cc.ResolutionPolicy.FIXED_WIDTH);
else cc.view.setDesignResolutionSize(320,480,cc.ResolutionPolicy.SHOW_ALL);
cc.view.resizeWithBrowserSize( true );

// 3.
cc.LoaderScene.PReload(resources, function () {
// 4.
gameScene = new GameScene();
cc.director.runScene(gameScene);
}, this );
};

cc.game.run();
關鍵點解析如下:
1.設置瀏覽器meta來適配屏幕,引擎內部會根據屏幕大小來設置meta的viewport值,會達到更好的屏幕適配效果。
2.針對手機瀏覽器和PC瀏覽器啟用不同的分辨率適配策略。
3.預加載圖片聲音等資源。 cc.LoaderScene.preload會生成一個“加載中 x%”的界面,等待資源加載結束后,調用第二個參數傳入的匿名函數。 對于基于html的游戲,頁面是放在服務器端供瀏覽器下載的,為了獲得流暢的用戶體驗,cc.LoaderScene.preload讓瀏覽器先把遠程服務器的資源緩存到本地。需要預加載的資源定義在src/Resources.js文件中。
4.啟動游戲的第一個場景。
主界面的由兩個層實現:
1.GameLayer層,游戲主邏輯層,在未初始化地圖矩陣時,它只顯示背景地圖。
2.StartUI層,顯示logo圖片和開始游戲按鈕。
GameScene的初始化代碼如下:

var GameScene = cc.Scene.extend({
onEnter : function () {
this ._super();

var bg = new cc.Sprite(res.bg);
bg.attr({
anchorX : 0.5,
anchorY : 0.5,
x : cc.winSize.width/2,
y : cc.winSize.height/2
});
this .addChild(bg);

layers.game = new GameLayer();
this .addChild(layers.game);

layers.startUI = new StartUI();
this .addChild(layers.startUI);

layers.winUI = new ResultUI( true );
layers.loseUI = new ResultUI( false );
layers.shareUI = new ShareUI();
}
});
由引擎提供的cc.Scene.extend方法,讓js能實現高級面向對象語言的繼承特性。 onEnter方法是場景初始化完成即將展示的消息回調,在onEnter中必須調用this._super();來確保Scene被正確的初始化。
整個游戲的設計只有一個scene,界面之間的切換由layer來實現,這可能不是一個最優的設計,但也提供另一種思路。 為了用layer來實現切換,全局變量layers存儲了各層的一個實例。
GameLayer我們在下一章節中詳細講解。
StartUI的實現如下:

var StartUI = cc.Layer.extend({
ctor : function () {
this ._super();

var start = new cc.Sprite(res.start);
start.x = cc.winSize.width/2;
start.y = cc.winSize.height/2 + 20;
this .addChild(start);
},
onEnter : function () {
this ._super();

cc.eventManager.addListener({
event: cc.EventListener.TOUCH_ALL_AT_ONCE,
onTouchesEnded: function (touches, event) {
var touch = touches[0];
var pos = touch.getLocation();
if (pos.y < cc.winSize.height/3) {
layers.game.initGame();
layers.startUI.removeFromParent();
}
}
}, this );
}
});
cc.Layer.extend作用同cc.Scene.extend一樣,只不過是一個擴展Scene,一個擴展Layer。ctor是Cocos2d-JS中的構造函數,在ctor中必須調用this._super();以確保正確的初始化。
在onEnter中,我們為StartUI層綁定事件監聽,判斷觸摸點的位置坐標來觸發scene切換。
細心的讀者可能要問,為什么不用Menu控件? 當前的Cocos2d-JS版本已實現模塊化,可以選擇只加載游戲中用到的模塊,已減少最終打包size。 為了不加入Menu模塊,這里使用了最簡單的觸摸點坐標判斷來實現通用的事情。
游戲界面的實現
橙色塊的初始化
游戲地圖區域是由9*9的六邊形方塊組成的,首先用InActive的圖片初始化一邊矩陣。相關代碼如下:

var ox = x = y = 0, odd = false , block, tex = this .batch.texture;
for ( var r = 0; r < ROW; r++) {
y = BLOCK_YREGION * r;
ox = odd * OFFSET_ODD;
for ( var c = 0; c < COL; c++) {
x = ox + BLOCK_XREGION * c;
block = new cc.Sprite(tex, BLOCK2_RECT);
block.attr({
anchorX : 0,
anchorY : 0,
x : x,
y : y,
width : BLOCK_W,
height : BLOCK_H
});
this .batch.addChild(block);
}
odd = !odd;
}
每次循環odd改變,已實現上下錯位的排布。 attr是Node基類的新方法,可以方便的一次性設置多個屬性。
橙色方塊的初始化是由initGame函數來完成。 先來看initGame的實現:

initGame : function () {
if ( this .inited) return ;

this .player_c = this .player_r = 4;
this .step = 0;

// 1.
for ( var i = 0, l = this .active_nodes.length; i < l; i++) {
this .active_nodes.removeFromParent();
}
this .active_nodes = [];
for ( var r = 0; r < ROW; r++) {
for ( var c = 0; c < COL; c++) {
this .active_blocks[r][c] = false ;
}
}

// 2.
this .randomBlocks();

// 3.
this .player.attr({
anchorX : 0.5,
anchorY : 0,
x : OFFSET_X + BLOCK_XREGION * this .player_c + BLOCK_W/2,
y : OFFSET_Y + BLOCK_YREGION * this .player_r - 5
});
this .player.stopAllActions();
this .player.runAction( this .moving_action);

this .inited = true ;
},

詳細說明?:http://ios.662p.com/thread-2125-1-1.html


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩电影中文字幕av| 欧美成人中文字幕在线| 啊v视频在线一区二区三区| 91在线无精精品一区二区| 国产成人精品999| 成人国产亚洲精品a区天堂华泰| 丝袜美腿亚洲一区二区| 亚洲国产精彩中文乱码av在线播放| 韩曰欧美视频免费观看| 亚洲欧洲在线播放| 人体精品一二三区| 午夜精品蜜臀一区二区三区免费| 91亚洲国产精品| 国产精品在线看| 亚洲风情亚aⅴ在线发布| 日韩欧美精品网址| 色妞色视频一区二区三区四区| 精品人伦一区二区三区蜜桃免费| 成人在线精品视频| 国产日韩综合一区二区性色av| 欧美日韩免费观看中文| 欧美精品福利在线| 欧美在线视频a| 91国内在线视频| 久久亚洲影音av资源网| 日韩高清有码在线| 日韩色av导航| 在线视频国产日韩| 午夜精品一区二区三区在线视频| 欧美成人午夜激情| 91大神福利视频在线| 欧美精品中文字幕一区| 久久久久亚洲精品| 久久人91精品久久久久久不卡| 国产一区二区日韩| www.美女亚洲精品| 国外色69视频在线观看| 亚洲日本aⅴ片在线观看香蕉| 国模视频一区二区| 久久天天躁狠狠躁老女人| 欧美大片在线影院| 亚洲欧美日韩中文在线制服| 亚洲美女中文字幕| 亚洲一区二区在线播放| 最新69国产成人精品视频免费| 亚洲国产精品电影| 欧美中文字幕精品| 亚洲一区二区久久久久久久| 国产人妖伪娘一区91| 国产91精品黑色丝袜高跟鞋| 色与欲影视天天看综合网| 精品自拍视频在线观看| 久久在线免费视频| 国产精品91久久| 久久亚洲国产精品成人av秋霞| 国产精品久久国产精品99gif| 日韩av色综合| 亚洲在线第一页| 日本国产欧美一区二区三区| 欧美激情一级精品国产| 777777777亚洲妇女| 日韩电影免费观看中文字幕| 亚洲精品日韩激情在线电影| 91视频国产一区| 欧美成人全部免费| 久久久91精品国产一区不卡| 国产精品无码专区在线观看| 国产精品久久婷婷六月丁香| www.日韩免费| 久久免费精品日本久久中文字幕| 欧美亚洲另类制服自拍| 久久久久一本一区二区青青蜜月| 日韩一区二区福利| 国产美女精品视频免费观看| 精品一区精品二区| 欧美午夜精品久久久久久久| 欧美日韩精品国产| 国产精品自拍小视频| 国产一区香蕉久久| 美女黄色丝袜一区| 国产精品爽爽爽爽爽爽在线观看| 亚洲一区二区三区在线视频| 久久香蕉频线观| 国产精品爽爽爽| 九九九热精品免费视频观看网站| 黄色一区二区三区| 国产亚洲精品综合一区91| 亚洲第一区在线观看| 性色av一区二区咪爱| 亚洲人成网7777777国产| 欧美精品制服第一页| 最近2019中文字幕在线高清| 亚洲午夜av电影| 亚洲激情视频网站| 亚洲人成电影在线| 欧美日韩中文字幕综合视频| 亚洲精品国产精品国自产在线| 日韩av电影在线免费播放| 97久久超碰福利国产精品…| 亚洲第一视频网| 欧美日韩国产精品一区二区不卡中文| 国色天香2019中文字幕在线观看| 日本免费在线精品| 亚洲精品美女网站| 亚洲欧洲日韩国产| 琪琪亚洲精品午夜在线| 日韩有码片在线观看| 欧美国产亚洲精品久久久8v| 亚洲伊人成综合成人网| 91在线播放国产| 欧美激情啊啊啊| 国产精品久久久久久久久影视| 欧美成人在线免费| 久久国产精品久久久久| 久久激情视频久久| 992tv成人免费影院| 正在播放欧美视频| 亚洲精品免费av| 91地址最新发布| 久久精品视频播放| 国产精品热视频| 欧美乱大交xxxxx另类电影| www.日韩av.com| 欧美日韩国产一区二区三区| 久久影院中文字幕| 欧美精品激情blacked18| 欧美怡红院视频一区二区三区| 久久深夜福利免费观看| 亚洲在线观看视频| 欧美韩国理论所午夜片917电影| 欧美国产日韩二区| 亚洲国产精品热久久| 色樱桃影院亚洲精品影院| 97激碰免费视频| 亚洲视频一区二区| 国产欧美日韩精品丝袜高跟鞋| 欧美巨乳美女视频| 韩剧1988在线观看免费完整版| 亚洲一区二区三区在线免费观看| 在线观看亚洲区| 一区二区三欧美| 国产精品日韩在线播放| 中文字幕精品国产| 日韩av在线导航| 久久视频国产精品免费视频在线| 久久亚洲国产成人| 一区二区三区美女xx视频| 国产成人精品视频在线观看| 国产精品福利在线| 中文字幕自拍vr一区二区三区| 国产91热爆ts人妖在线| 91色视频在线观看| 亚洲精品视频二区| 亚洲最大福利视频网站| 国产精品一久久香蕉国产线看观看| 欧美日韩午夜视频在线观看| 91久久在线视频| 亚洲人成在线观| 日韩精品中文在线观看| 中文字幕亚洲欧美日韩2019| 久久精品国产欧美激情| 久久综合电影一区| 亚洲韩国欧洲国产日产av| 精品无人区太爽高潮在线播放|