這裡來一篇小遊戲實戰篇。
效果圖:(錄屏的時候有點卡)
demo位址:如果對你有用,請點
star
~遊戲整體思路實現
1. 實現乙個無縫連線的背景圖,模擬出汽車在加速的狀態
this.backdrop = new2. 隨機繪製障礙物由於一條跑道肯定會有很多障礙物,對於超出螢幕的障礙物我們要進行『資源**』,否則遊戲到後面會越來越卡頓。createjs.bitmap(bg);
this.backdrop.x = 0;
this.backdrop.y = 0;
this
.stage.addchild(that.backdrop);
this.w =bg.width;
this.h =bg.height;
//建立乙個背景副本,無縫連線
var copyy = -bg.height;
this.copy = new
createjs.bitmap(bg);
this.copy.x = 0;
this.copy.y = copyy; //
在畫布上y軸的座標為負的背景圖長
//使用createjs的tick函式,逐幀重新整理舞台
createjs.ticker.addeventlistener("tick", tick);
function
tick(e)
if (that.copy.y > -copyy - 100)
that.stage.update(e);
}
}
//一共有3條賽道,我們不能出現3個道具同時出現在水平線上,因此我們會隨機取1~2個值繪製障礙物。所有遊戲我們都應該有引數去控制它的難易程度,免得臨上線的時候,老闆體驗之後覺得遊戲太難了……那就非常地尷尬了。 因此,我們會設定加速物體,減速物體,炸彈出現的比例,後期可以調整這個比例來設定遊戲的難易程度。刪除越界的元素
for (var i = 0, flag = true, len = that.props.length; i < len; flag ? i++: i)
else}}
var num = parseint(2 * math.random()) + 1, i;第一次繪製完障礙物之後,會隨機時間繪製下一次的障礙物。for (i = 0; i < num; i++) else
if ((type >= 2) && (type <= 5)) else
if ((type >= 6) && (type <= 10))
}
var time = (parseint(3 * math.random()) + 1); //3.碰撞檢測我們用乙個陣列來存放汽車佔的矩形區域,障礙物佔的矩形區域,在每一次tick的時候迴圈遍歷陣列,看是否有重疊的,若有重疊,則發生了碰撞。隨機取1~3整數
//隨機時間繪製障礙物
settimeout(function
() , time * 400); //
400ms ~ 1200ms
createjs的一些小知識:
1. 暫停和恢復舞台渲染
createjs.ticker.addeventlistener(「tick」, tick);2. 由於汽車會有加速,減速,彈氣泡的效果。因此我們把這幾個效果繪製在同乙個container中,方便統一管理,對這些效果設定name屬性,之後可以直接使用getchildbyname獲取到該物件。function
tick(e)
}
createjs.ticker.paused = 1; //
在函式任何地方呼叫這個,則會暫停tick裡面的處理 createjs.ticker.paused = 0; //恢復遊戲
container.name = 『role』; //3. 預載入 preload (createjs 的 preload 非常的實用)設定name值
car = this.stage.getchildbyname(「role」); //
使用name值方便獲取到該物件
一開始是自己寫的預載入,後來發現createjs裡面對是有跨域處理的,自己處理跨域的img就比較麻煩,所以直接使用createjs的預載入。
//放置靜態資源的陣列一般做乙個遊戲,我們正常都會構建乙個遊戲類來承載。 下面是乙個遊戲正常有的介面:var manifest =[
];var queue = newcreatejs.loadqueue();
queue.on('complete', handlecomplete, this);
queue.loadmanifest(manifest);
//資源載入成功後,進行處理
functionhandlecomplete()
;(function() cargame.prototype =,
render:
function
() ,
//在遊戲結束的時候批量銷毀
destroy:function
(),
//由於期間使用者可能切出程式進行其他操作,因此都需要乙個暫停的介面
pause:function
() ,
//重新開始遊戲
restart:function
(), gameover:
function
() }
})()
C 開發小遊戲 掃雷
如下 to change this license header,choose license headers in project properties.to change this template file,choose tools templates and open the templat...
小遊戲雲開發入門
wx 當下雲開發比較火,不過本人並不是很感冒,因為他的好處顯而易見,但缺點也是致命的。好處就是1.不用自己買伺服器,網域名稱認證,不用擔心伺服器過期 省去了很多時間。2.初始容量免費,基本夠用。缺點就是不能跨平台。這個就很傷了,我們開發一款遊戲不可能只上乙個平台吧!雖然我們可以上所有擁有雲開發能力的...
《windowsPhone遊戲開發實戰》
2012年10月20號,我完成了這本書的初稿。2012年12月23號 世界末日 那天我收到了這本書的初稿。算起來這算是我寫的第二本,不過第一本是和別人合寫的,這次算是獨立寫的。寫書是為了對過去2年技術積累的乙個總結,寫完還是覺得有很多不足,個人積累得還不夠。本書每一章有完整的demo,在電子工業出版...