用lua写的小游戏,主要玩法是点击进行采矿并和怪物搏斗等操作,人物属性有体力,血量,恢复,攻击,防御

采矿可以挖到金币和经验,打怪升级最后决战boss赢取胜利,升级可以获得技能点增加属性,还有老虎机系统等外围系统

首先说下小怪和矿的配置格式和需要用到的参数读取函数:

local sz = CCDirector:sharedDirector():getVisibleSize()
local BonusType = CreateEnumTable({"MINE", "ENEMY", "SYSTEM", "BOSS"})
local KeyType = CreateEnumTable({"IRON", "SILVER", "GOLD"})
local SysType = CreateEnumTable({"AACT", "AATK", "ADEF", "AKEY", "ADOT", "ROCK"})
local gameConfig = {initBattleData = {active = 50,     -- 体力hp = 100,        -- 生命recover = 10,    -- 恢复atk = 10,        -- 攻击def = 10,        -- 防御},bonus = {{types = BonusType.MINE,width = 39,height = 15,pos = ccp(10, 269),curlife = 0,digged = false,},{types = BonusType.ENEMY,width = 30,height = 30,pos = ccp(10, 235),curlife = 0,digged = false,},{types = BonusType.SYSTEM,width = 48,height = 48,pos = ccp(10, 104),sys = SysType.ADOT,color = "lightyellow",cost = {200,400,1000,1600,2400,3600,5000,6400,8000,10000},curst = 1,},{types = BonusType.SYSTEM,width = 59,height = 47,pos = ccp(174, 252),sys = SysType.AATK,color = "lightyellow",cost = {200,400,1000,1600,2400,3600,5000,6400,8000,10000},curst = 1,},{types = BonusType.SYSTEM,width = 80,height = 81,pos = ccp(439, 203),sys = SysType.ROCK,color = "darkyellow",cost = {200},result = {0,0,0},curst = 0,},},
}function getUserMaxExp(level)return math.ceil(level/3)*100
endfunction getInitBattleData()return gameConfig.initBattleData
endfunction getLevelUpAddSkillDot(level)return math.ceil(level/5)*5
endfunction countBarScaleX(scale, hpAndActivePercent)if hpAndActivePercent thenreturn math.min(1, math.max(0.02, scale)) * math.min(1, math.max(0.5, hpAndActivePercent))elsereturn math.min(1, math.max(0.01, scale))end
endfunction getBonusListInfo()return gameConfig.bonus
endfunction getMineActivendRecover(width, height)local area = width*heightlocal lenght = width+heightlocal cost = math.floor(area/50)if cost >= width/3 then cost = math.floor(width/5) endlocal cover = math.ceil(height/5) - 2if cost <= 1.5*cover then cover = cost endlocal mineData = {life = width,recover = cover,digMoney = math.floor(area/2),digExp = math.floor(area/2),clickMoney = math.floor(area/20),clickCost = cost,}return mineData
endfunction getEnemyLifeAndRecover(width, height)local area = width*heightlocal lenght = width+heightlocal enemyData = {life = width,atk = math.ceil(lenght/3),def = math.ceil(lenght/10),recover = math.ceil(height/5) - 2,digMoney = math.floor(area/4),digExp = math.floor(area/1),}return enemyData
end

bonus里面配置的是系统的类型、位置、大小、状态等信息

下面的函数主要是不同等级的经验、技能点等属性的计算,和小怪、矿的属性计算,主要根据方块的长宽进行计算

下一节介绍玩家的等级等信息的更新方法

1000行代码写小游戏(一)相关推荐

  1. 1000行代码写小游戏(终)

    最后献上完整的1000行代码,基本功能已经完成,可以通过配置小怪和矿的位置和大小控制玩家时长和难度: ------------------------------------------------- ...

  2. 1000行代码写小游戏(二)

    玩家属性Table数据格式: local userData = {floor = 1, -- 楼层level = 0, -- 等级curExp = 0, -- 当前经验maxExp = 0, -- 升 ...

  3. 1000行代码写小游戏(四)

    更新金币.钥匙和收藏品: -- 更新金币 function MineSecretDialog:updateUserMoney(addMoney, isInit)addMoney = addMoney ...

  4. 1000行代码写小游戏(五)

    主角的一些属性更新和展示都已经做完了,下面主要做玩法方面的,添加小怪.矿和系统,并增加点击逻辑: -- 增加矿,敌人和系统 function MineSecretDialog:addMineAndEn ...

  5. FFmpegSDL教程:用不到1000行代码写一个播放器

    序 更新:本教程最近一次更新于2015年2月. FFmpeg是一个创建视频应用,甚至更通用程序的强大音视频工具库.FFmpeg能够完成视频处理过程中解码,编码,封装和解封装所有这些棘手工作.借助它,可 ...

  6. C/C++编程学习:百行代码实现小游戏(剪刀石头布)

    这是一个简单的小游戏(剪刀石头布),让你与电脑对决.你出的拳头由你自己决定,电脑则随机出拳,最后判断胜负. 启动程序后,让你出拳 出拳之后,显示对决结果 代码实现: #include<stdio ...

  7. [教你做小游戏] 用86行代码写一个联机五子棋WebSocket后端

    我是HullQin,公众号线下聚会游戏的作者(欢迎关注公众号,发送加微信,交个朋友),转发本文前需获得作者HullQin授权.我独立开发了<联机桌游合集>,是个网页,可以很方便的跟朋友联机 ...

  8. 用c语言400行代码小游戏,程序员400行代码制作翻牌游戏解决无聊时间

    原标题:程序员400行代码制作翻牌游戏解决无聊时间 上班感觉累,很想放假,但是放假在家又感觉非常无聊,总是不知道干什么,又感觉还不如上班呢,反正无聊不如练练写小游戏吧,即练习了代码,做完后还能接着玩, ...

  9. 让你少写 1000 行代码的正则全攻略来了!

    说起正则表达式,相信大家都不陌生.在很多程序员的认知中,这东西并不难,在工作中用的也不多,每次用的时候去 Google 搜一搜,然后复制过来改一改,问题就解决了,看起来效率特别高,好像完全没必要专门花 ...

最新文章

  1. 存储的瓶颈--大型网站技术演进思考
  2. 在html中使用thymeleaf编写通用模块
  3. 皮一皮:碰上一个说倒装句的直男怎么办...
  4. IDEA 2020.1打开时闪退的问题及解决方法
  5. net::ERR_INCOMPLETE_CHUNKED_ENCODING(php项目+nginx)
  6. mysql 测试快生产慢_生产上MySQL慢查询优化实战,SQL优化实战
  7. 【Flink】Flink 1.9 版本 web UI 突然没有日志
  8. java 多线程callable_java 多线程-实现Callable接口
  9. CCAI 2017 | 日本理化学研究所杉山将:弱监督机器学习的研究进展
  10. PySpark+Windows开发环境的搭建
  11. 计算机二级c语言作弊技巧,计算机等级考试二级C语言题型分析与应试技巧
  12. python爬取链家租房信息_使用python爬取链家广州12108条租房信息,并做一些基础分析...
  13. 豆瓣高分电影爬取学习心得
  14. 电脑启动计算机管理闪退,win7系统控制面板无法打开出现闪退的设置方案
  15. 如果把编程语言比作武器
  16. 笔记本无线上网方式大全 (转)
  17. C++核心准则​讨论:析构,释放和交换操作必须永不失败
  18. python基础运用_python基础知识和运用
  19. freeswitch智能语音开发之ASR
  20. Linux内核分析 期中总结

热门文章

  1. linux博通bcm4313无线网卡,Debian中配置broadcom bcm43XX无线网卡
  2. 尼尔·唐纳德·沃尔什《与神对话》
  3. NAS-Bert——确保One-shot与Task-agnostic
  4. JS下拉列表动态收缩与展开
  5. python 日志框架_python pytest测试框架介绍五---日志实时输出
  6. CHIL-SQL-function 函数
  7. 上海计算机5年制大专学校,上海五年制大专学校排名
  8. Linux · 教程
  9. 【安全牛学习笔记】密码嗅探
  10. 7-4 银行排队问题之单窗口“夹塞”版 (30 分) C语言版