日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

(NO.00001)iOS游戏SpeedBoy Lite成形记(八)

發(fā)布時(shí)間:2023/12/10 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (NO.00001)iOS游戏SpeedBoy Lite成形记(八) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前一篇提到,如果要想動(dòng)態(tài)修改選手的速度需要在update方法中添加代碼.

因?yàn)閡pdate方法在游戲每一幀都會(huì)調(diào)用,所以我們不可能修改的太頻繁.否則一來(lái)對(duì)性能有影響,而來(lái)玩家表現(xiàn)的極不自然,像抽風(fēng)一樣.

所以我決定,在一場(chǎng)比賽中每位選手的速度最多只能修改5次,先在GameScene中添加如下靜態(tài)變量與常量:

static const NSInteger MaxChanged = 5; static NSInteger totalChanged = 0;

要實(shí)現(xiàn)速度的變化在update中實(shí)現(xiàn),可是怎樣實(shí)現(xiàn)呢?
因?yàn)槲覀冞x手移動(dòng)是通過(guò)CCActionMove來(lái)做的,立即可以想到,在不改變代碼邏輯,最簡(jiǎn)單的方法就是用CCActionSpeed來(lái)修改Move動(dòng)作的速度.所以我們要在Player類中新增實(shí)例變量,以便后來(lái)引用.

打開(kāi)Player.h文件,在接口中添加一個(gè)新屬性:

@property (nonatomic,weak) CCActionSpeed *speed;

這個(gè)屬性不在Player的初始化中賦值,而是在實(shí)際比賽中賦值.

回到GameScene.m中,我們嘗試實(shí)現(xiàn)一下update方法:

-(void)update:(CCTime)delta{NSInteger fork = (CCRANDOM_0_1() * 100)+1;if (_matching && fork%91 == 0 && totalChanged < MaxChanged ) {for (Player *player in _players) {NSInteger negMul = arc4random_uniform(2) == 0?1:-1;CCTime rndSpeed = (negMul * CCRANDOM_0_1())+1;player.speed.speed = rndSpeed;}totalChanged++;} }

代碼邏輯比較清晰,簡(jiǎn)單解釋下:
首先判斷速度修改的前提條件是否達(dá)到,如果不符合3個(gè)條件中的任一個(gè),則不會(huì)執(zhí)行修改邏輯代碼.這三個(gè)條件分別是:

  • 比賽已經(jīng)開(kāi)始
  • 隨機(jī)數(shù)fork可被91整除
  • 已修改次數(shù)小于最大修改次數(shù)
  • 增加前提條件的原因前面已經(jīng)說(shuō)過(guò)了,是因?yàn)槲覀儾幌脒x手速度修改的太過(guò)頻繁.各位童鞋可以根據(jù)自己的實(shí)際需求進(jìn)行調(diào)整,這個(gè)限制條件并不是絕對(duì)的.

    從上所述,可以知道無(wú)論如何每位選手最多也只能被修改5次速度,我覺(jué)得在這里比較合適.

    下面的代碼比較簡(jiǎn)單了,就是生成一個(gè)隨機(jī)的速度值,它是一個(gè)比率在0到2之間,如果小于1則表示減速,如果大于1表示加速,等于1表示速度不變.

    最后別忘了更新totalChanged的值.
    哦鳥(niǎo)!接下來(lái)又到了真正修改matchRun方法的時(shí)候了 ;)

    總結(jié)

    以上是生活随笔為你收集整理的(NO.00001)iOS游戏SpeedBoy Lite成形记(八)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。