1000行代码写小游戏(七)
来源:互联网 发布:东京大学医学部 知乎 编辑:程序博客网 时间:2024/05/29 08:01
初始化系统的状态和点击反馈,有数值系统和老虎机系统:
-- 初始化系统的信息和状态function MineSecretDialog:initSystemStatus(v) local times = 0 local haveRunAction = false G_Font_Purple = { name = DefaultFont, size = 15, color = FontColor.Purple } G_Font_Orange = { name = DefaultFont, size = 15, color = FontColor.Orange } G_Font_Blue = { name = DefaultFont, size = 15, color = FontColor.Blue } local rockBonus = {"6", "8", "9", "E", "$", "@", "*"} local itemSize = CCSizeMake(v.width, v.height) local sprite = CCScale9Sprite:create("p_purecolor_"..v.color..".png", CCRectMake(0, 0, 10, 10), CCRectMake(2, 2, 6, 6)) sprite:setContentSize(itemSize) local sysItem = CCMenuItemSprite:create( sprite, sprite ) self.m_menu:addChild(sysItem, 1) sysItem:setPosition(v.pos) sysItem:setAnchorPoint(ccp(0, 1)) local clickCost,addNum,sysName = 0,0,"" if v.sys == SysType.AACT then clickCost,addNum,sysName = v.cost[v.curst],v.curst*5,"ACT" elseif v.sys == SysType.AATK then clickCost,addNum,sysName = v.cost[v.curst],v.curst*5,"ATK" elseif v.sys == SysType.ADEF then clickCost,addNum,sysName = v.cost[v.curst],v.curst*5,"DEF" elseif v.sys == SysType.ADOT then clickCost,addNum,sysName = v.cost[v.curst],v.curst*5,"DOT" elseif v.sys == SysType.AKEY then clickCost,sysName = v.cost[1],"KEY" AddLabel( " ? ", ccp(v.width/2, v.height/2), sysItem, Tag.SysNumLabel+1, G_Font_Purple, ccp(0.5, 0.5) ) elseif v.sys == SysType.ROCK then clickCost,sysName = v.cost[1],"ROCK" AddLabel( " ? ", ccp(v.width/2 - 20, v.height/2), sysItem, Tag.SysNumLabel+1, G_Font_Purple, ccp(0.5, 0.5) ) AddLabel( " ? ", ccp(v.width/2, v.height/2), sysItem, Tag.SysNumLabel+2, G_Font_Purple, ccp(0.5, 0.5) ) AddLabel( " ? ", ccp(v.width/2 + 20, v.height/2), sysItem, Tag.SysNumLabel+3, G_Font_Purple, ccp(0.5, 0.5) ) end AddLabel( "$"..clickCost, ccp(5, v.height-10), sysItem, Tag.SysCostLabel, G_Font_Black_8, ccp(0, 0.5) ) AddLabel( sysName, ccp(v.width-5, 10), sysItem, Tag.SysNameLabel, G_Font_Black_8, ccp(1, 0.5) ) if addNum > 0 then AddLabel( "+"..addNum, ccp(v.width/2, v.height/2), sysItem, Tag.SysNumLabel, G_Font_Purple, ccp(0.5, 0.5) ) end sysItem:registerScriptTapHandler(function () if self.m_timer - times < 1 then return else times = self.m_timer end local clickcost = v.cost[1] if #v.cost > 1 and v.curst <= #v.cost then clickcost = v.cost[v.curst] end game.fleetingLabelManager:pushLabel( "posX "..v.pos.x.." posY "..v.pos.y.." cost "..clickcost, self ) local redMoney = true if v.sys == SysType.ROCK and v.curst > 0 then redMoney = false end if userData.money < clickcost and redMoney then game.fleetingLabelManager:pushLabel( "金币不足", self, "error" ) return elseif redMoney then self:updateUserMoney(0 - clickcost) end local addnum = 0 if v.sys == SysType.AACT then self:updateUserActive(0, v.curst*5) v.curst = v.curst + 1 addnum = v.curst*5 elseif v.sys == SysType.AATK then self:addUserRecoverAtkDef(0, v.curst*5, 0) v.curst = v.curst + 1 addnum = v.curst*5 elseif v.sys == SysType.ADEF then self:addUserRecoverAtkDef(0, 0, v.curst*5) v.curst = v.curst + 1 addnum = v.curst*5 elseif v.sys == SysType.ADOT then self:addUserExp(0, v.curst*5) v.curst = v.curst + 1 addnum = v.curst*5 elseif v.sys == SysType.AKEY then if self:getRandomResult(1) then AddLabel( " 紫 ", ccp(v.width/2, v.height/2), sysItem, Tag.SysNumLabel+1, G_Font_Purple, ccp(0.5, 0.5) ) self:updateUserKey(0, 0, 1) elseif self:getRandomResult(10) then AddLabel( " 橙 ", ccp(v.width/2, v.height/2), sysItem, Tag.SysNumLabel+1, G_Font_Orange, ccp(0.5, 0.5) ) self:updateUserKey(0, 1, 0) else AddLabel( " 蓝 ", ccp(v.width/2, v.height/2), sysItem, Tag.SysNumLabel+1, G_Font_Blue, ccp(0.5, 0.5) ) self:updateUserKey(1, 0, 0) end elseif v.sys == SysType.ROCK then if v.curst == 0 then v.curst = v.curst + 1 end if haveRunAction then v.curst = v.curst + 1 sysItem:stopAllActions() haveRunAction = false end if v.curst < 4 then local array = CCArray:create() array:addObject(CCDelayTime:create(0.1)) array:addObject(CCCallFunc:create(function () v.result[v.curst] = v.result[v.curst] + 1 if v.result[v.curst] > #rockBonus then v.result[v.curst] = 1 end AddLabel( rockBonus[v.result[v.curst]], ccp(v.width/2 + (v.curst-2)*20, v.height/2), sysItem, Tag.SysNumLabel+v.curst, G_Font_Purple, ccp(0.5, 0.5) ) haveRunAction = true end)) if haveRunAction == false then sysItem:runAction(CCRepeatForever:create(CCSequence:create(array))) end else -- 进行结算 game.fleetingLabelManager:pushLabel( v.result[1].." "..v.result[2].." "..v.result[3], self, "error" ) if v.result[1] == v.result[2] and v.result[2] == v.result[3] and v.result[3] == 1 then elseif v.result[1] == v.result[2] and v.result[2] == v.result[3] and v.result[3] == 2 then elseif v.result[1] == v.result[2] and v.result[2] == v.result[3] and v.result[3] == 3 then elseif v.result[1] == v.result[2] and v.result[2] == v.result[3] and v.result[3] == 4 then elseif v.result[1] == v.result[2] and v.result[2] == v.result[3] and v.result[3] == 5 then elseif v.result[1] == v.result[2] and v.result[2] == v.result[3] and v.result[3] == 6 then elseif v.result[1] == v.result[2] and v.result[2] == v.result[3] and v.result[3] == 7 then end v.curst = 0 v.result = {0,0,0} end end if #v.cost > 1 then if v.curst > #v.cost then AddLabel( "完", ccp(v.width/2, v.height/2), sysItem, Tag.SysNumLabel, G_Font_Purple, ccp(0.5, 0.5) ) sysItem:removeChildByTag( Tag.SysCostLabel, true ) sysItem:setEnabled(false) return else AddLabel( "$"..v.cost[v.curst], ccp(5, v.height-10), sysItem, Tag.SysCostLabel, G_Font_Black_8, ccp(0, 0.5) ) AddLabel( "+"..addnum, ccp(v.width/2, v.height/2), sysItem, Tag.SysNumLabel, G_Font_Purple, ccp(0.5, 0.5) ) end end end)end
老虎机具体发放的奖励可以自己配置
0 0
- 1000行代码写小游戏(七)
- 1000行代码写小游戏(一)
- 1000行代码写小游戏(二)
- 1000行代码写小游戏(三)
- 1000行代码写小游戏(四)
- 1000行代码写小游戏(五)
- 1000行代码写小游戏(六)
- 1000行代码写小游戏(八)
- 1000行代码写小游戏(终)
- JS写怀旧小游戏系列(七)吃方块
- Java写的小游戏贪吃蛇代码
- Python编写微信打飞机小游戏(七)
- 自己写的灌田小游戏代码分析(VC6 GDI+)第一章
- 2048小游戏(javascript代码)
- 一个贪吃蛇小游戏(17行代码)
- 小游戏代码
- Cocos2D-X射击小游戏(七)编码5 碰撞检测
- Cocos2d-x格斗小游戏(七) 攻击碰撞检测
- iOS 关于navigationBar的一些:毛玻璃、透明、动态缩放、动态隐藏
- 查找(Searching)
- 后台界面也可以很酷!31个高大上的后台管理系统模版
- 利用cache特性检测Android模拟器
- 美团ios navigationBar渐变效果
- 1000行代码写小游戏(七)
- 译:WebRTC视频通信
- 数据库中的名词解释
- int $0x80系统调用的idea
- Music published vary from Cantonese to softMusic ,sure your love
- Linux环境下sendmail发送html格式正文及csv格式附件邮件
- Linux下安装Eclipse IDE for C/C++ Developers
- 设计模式之原型模式
- JAVA 数组全排列