首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

游戏开发】小白学Lua(上)

在很多游戏中,脚本语言是不可或缺的一部分,很多游戏都使用到了Lua,js,python一类的脚本,脚本语言可以在很多方面给开发进程带来帮助。...脚本语言可以作为初始化文件读入变量和游戏数据的一个快速而方便的方法。它们通常因为具有节省编译时间提高生产效率、提高创造性和拓展性的有点而受到众多游戏开发厂商的青睐。...但是在这之前我们还是先来熟悉一下Lua的变量、类型、操作符和条件结构(如果你之前有任何一门编程语言的基础,那么这些内容学起来将会十分轻松)。...1.Lua变量 Lua是一门动态语言,它和C++/Java不同,变量是可以被赋予任何类型的值(这点和js,python等脚本一样),比如: --lua脚本开始啦!...这意味着你不但可以整数来索引一个表,也可以使用任何类型的键值来索引一个表,而且lua的表是混合类型的,它们可以包含不同的数据类型。

1.7K30

Lua游戏开发之时区问题

目前大部分游戏都采用了Lua语言进行功能开发,在进行多语种发行的时候就会遇到时区显示的问题。...lua 源码, loslib.c Line 283 行 static int os_date (lua_State *L) { size_t slen; const char *s = luaL_optlstring...游戏中有很多功能是有时间限制的,比如运营活动,或者功能开启。如果本地时间就不好控制,统一服务器时间避免了很多问题。...可是也容易遇到一个坑,运营配置的活动时间都是针对当前服务器的时间,例如某个活动的截止时间是:2018-10-08 00:00:00,游戏需要显示活动截止倒计时。...有一个时差的问题,之前计算一直的是serverTimeZone —— 一个固定值,而我当前处于地区或国家,它相对于UTC的时区不确定的,怎么办?

2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    cocos2dx-lua游戏开发

    开发环境: mac,cocos2dx 3.17 开发语言: lua 前言 cocos2dx 英文官网:http://www.cocos2d-x.org/ cocos2dx 中文社区:http://www.cocos.com...打开工程目录下的config.json文件,横屏竖屏由isLandscape控制,true为横屏,flase为竖屏,其中width和height是控制模拟器的大小 屏幕适配 打开工程目录下src/config.lua...文件,修改CC_DESIGN_RESOLUTION下的参数,具体修改方法可参考博客 添加精灵 打开工程目录下src/app/views/MainScene.lua文件,添加一下代码 local png...0,0,0,0)) self:addChild(sprite) sprite:setPosition(display.width/2,display.height/2) 具体可以参考博客cocos2dx-lua...、继续 CCDirector.sharedDirector():pause() --游戏暂停 CCDirector.sharedDirector():resume() --游戏继续 两个矩形的碰撞 local

    1.3K20

    Vue.js开发原生应用选择Weex还是NativeScript?

    尽管如此,Vue.js仍然有一个限制,它还不能像React的React Native,Vue.js目前还没有稳定、广泛采用的方法来开发原生应用程序。 不过,这肯定会改变!...目前有两个框架正在开发,可以打开Vue.js框架创建本地应用程序之门,我们都很喜欢的:Weex和NativeScript。...组件之间的桥梁,让你可以Vue.js构建跨平台的应用程序。...利弊综述 总结每个框架的优点和缺点,我认为: Weex: 已经用于生产环境(虽然只在中国); 可用于Web、Android和iOS的构建; 很好的社区; 工具还是有些简陋的; 没有明确的路径来知道如何启动一个项目...当然,也有一些粗糙的地方,但是一旦他们清除了问题,我们将有一个坚实的框架来开发本地应用程序使用Vue.js。 我赌NativeScript!

    2.4K10

    【Unity游戏开发C#和Lua实现Unity中的事件分发机制EventDispatcher

    希望能从这篇博客开始有些改善吧,尽量少玩耍,还是多学习吧~   好了扯得有点远了,来说说我们今天博客的主题——“C#和Lua实现Unity中的事件分发机制”,事件分发机制或者叫事件监听派发系统,在每个游戏框架中都是不可或缺的一个模块...今天马三就和大家一起,分别使用C#和Lua实现两种可以用在Unity游戏开发中的事件分发处理机制,希望能对大家有些帮助吧~ 二、C#版的事件分发机制   首先我们来实现C#版本的事件分发机制,目前这套流程已经集成到了马三自己的...25 { 26 public string Cmd; 27 public List ParaList; 28 } 29 30 /// 31 /// 游戏中的事件...三、Lua版的事件分发机制   Lua版本的事件分发机制相对C#版的来说就简单了很多,Lua中没有接口的概念,因此实现方式和C#版的也大有不同,不过总的来说还是对外暴露出以下几个接口: Instance...在EventMgr的内部其实还是维护了一个监听者列表,注册消息的时候,就是把回调和参数添加到监听者列表中。反注册消息就是把对应key的回调从监听者列表中移除。

    2.2K40

    游戏AMD还是Intel?哪个才是你的游戏挚爱?

    对于一个游戏玩家来说,玩游戏AMD还是Intel?是一个比“婆媳落水”更难的问题,AMD和Intel,哪个才是你的游戏挚爱?本文将例举几个因素进行比较。...1、看平台优化,玩游戏AMD还是Intel? 最近很多网友自测的跑分成绩能够体现出AMD这几年的发展趋势。...所以,如果你问“玩游戏AMD还是Intel”,不妨先考虑一下自己的游戏平台情况吧! 2、看性价比,玩游戏AMD还是Intel? 玩游戏AMD还是Intel?性价比是一个重要的因素。...3、看产品性能,玩游戏AMD还是Intel? 在产品性能方面,玩游戏AMD还是Intel?。...玩游戏AMD还是Intel?这个问题只能说仁者见仁智者见智。

    2.6K40

    游戏开发】小白学Lua——从Lua查找表元素的过程看元表、元方法

    引言 在上篇博客中,我们简单地学习了一下Lua的基本语法。其实在Lua中有一个还有一个叫元表的概念,不得不着重地探讨一下。元表在实际地开发中,也是会被极大程度地所使用到。...本篇博客,就让我们从Lua查找表元素的过程,来探讨学习一下Lua中的元表。 一、什么是元表 在Lua table中我们可以访问对应的key来得到value值,但是却无法对两个table进行操作。...--执行方法调用 __tostring(a) --字符串输出 __metatable --保护元表 三、Lua的表元素查找机制 众所周知,Lua的表本质其实是个类似Dictionary的东西,其元素是很多的...如果尝试访问了一个表中并不存在的元素时,就会触发Lua的一套查找机制,Lua也是凭借这个机制来模拟了类似“类”的行为。...但对于Lua的表,如果myTable有元表和元方法,情况就不同了。

    1.7K30

    【Unity游戏开发】浅谈Lua和C#中的闭包

    一、前言   目前在Unity游戏开发中,比较流行的两种语言就是Lua和C#。通常的做法是:C#做些核心的功能和接口供Lua调用,Lua主要做些UI模块和一些业务逻辑。...这样既能在保持一定的游戏运行效率的同时,又可以让游戏具备热更新的功能。无论我们有意或者无意,其实我们经常会在Unity游戏开发中使用到闭包。...二、Lua中的闭包   相信,对于经常使用Javascript的前端开发者来说,闭包这个概念一定不会陌生,在Javascript开发中,一些高级的应用都需要闭包来实现。...而对于传统的C++开发者或者C#开发者来说,闭包这个词或多或少都会有些玄之又玄的感觉。那么,在开讲之前,让我们先来了解几个Lua中基础知识和概念,这样有助于我们理解Lua闭包。...四、总结   无论是在Javascript、Lua还是C#开发中,闭包的使用相当广泛,也正是由于闭包和各种语法糖的存在,才使得我们的代码更加简洁,使用更方便。

    2.5K31

    PyGame 入门专业游戏开发(二)

    推麻将的玩法 上一篇介绍了一个游戏运行的最基本结构,本篇开始根据一个具体的游戏,做一个游戏关卡。下面要做的是一个叫“推麻将”的桌面玩法。...所以我们游戏逻辑的主要实现代码就是: 编写 MainScenario.start() :放置游戏关卡初始的所有游戏对象组 Group 以及需要的游戏对象 Sprite 编写游戏对象 Group 和 Sprite...一般来说,游戏的图像资源,都是一个图片文件。...由于需要随机打乱位置,所以 Table.put_in() 必须要使用随机数来实现这个功能: 一个数组 mahjiongs 存放“未放入”的麻将堆 一个数组 random_symbol 存放“打乱顺序...”的麻将堆 随机从 mahjiongs 抽出一个麻将,加入到 random_symbol 中,直到 mahjiongs 变空 random_symbol 的顺序,一个个放入 Table 的 14x8

    28310

    PyGame 入门专业游戏开发(四)

    在复杂的游戏开发中,我们可能使用异常、错误码返回值等手段来实现各种“错误”的传递和处理。这里由于是入门项目,所以没有做的更复杂。...在新的位置上,判断是否可以消除 在垂直于移动方向的 +1 方向(往下、往右)判断 在垂直于移动方向的 -1 方向(往上、往左)判断 在 Point 类上添加 move_deck_check() 方法,这个方法进行上面的判断...根据 deck 里面的第一个麻将的 pos 属性,以及目的空位 pos 属性的值,就可以计算出: 水平还是垂直方向移动 是 +1 还是 -1 方向移动 有了上面的两个方向,剩下的就是根据 deck 里面的顺序...至此,整个游戏的核心玩法开发就完成了。...虽然现在还没有游戏难度控制、标题画面和 GameOver 画面等。但是这些,都不会比游戏玩法更难实现。 在这个游戏开发过程中,使用 pygame 的能力其实并不复杂,最复杂的还是游戏逻辑的实现。

    22910

    MelonJS 开发一个游戏

    游戏开发并不需要局限于使用 Unity 或 Unreal Engine4 的用户。JavaScript 游戏开发已经有一段时间了。...实际上,最流行的浏览器(例如Chrome,Firefox和Edge)的最新版本提供了对高级图形渲染(例如WebGL【https://get.webgl.org/】)的支持,从而带来了非常有趣的游戏开发机会...不过 WebGL 进行游戏开发没有办法在一篇文章中涵盖其所有内容(有专门为此编写的完整书籍),并且出于个人喜好,在深入研究特定技术之前,我更倾向于依赖框架的帮助。...这里要检查的关键文件是: game.js:该文件包含所有初始化代码,有趣的是如何实例化游戏图形和主控件。 screens/play.js:包含设置关卡所需的所有代码。你会注意到它内容并不多。...简而言之,它可以确保无论你是按向右箭头键,D 键还是向右移动模拟摇杆,都会在代码中触发相同的“向右”动作。 所有这些都需要将其删除,这对我们没什么

    1.6K10

    C语言开发入门游戏FlappyBird

    前言 《flappy bird》是一款由来自越南的独立游戏开发者Dong Nguyen所开发的作品,游戏于2013年5月24日上线,并在2014年2月突然暴红。...2014年2月,《Flappy Bird》被开发者本人从苹果及谷歌应用商店撤下。2014年8月份正式回归APP Store,正式加入Flappy迷们期待已久的多人对战模式。...游戏中玩家必须控制一只小鸟,跨越由各种不同长度水管所组成的障碍。...通过游戏开发可以做到 1)在游戏窗口中显示从右向左运动的障碍物,显示三根柱子墙; 2)用户使用空格键控制小鸟向上移动,以不碰到障碍物为准,即需要从柱子墙的缝隙中穿 行,确保随机产生的障碍物之间的缝隙大小可以足够小鸟通过...5)如果小鸟碰到障碍物或者超出游戏画面的上下边界,则游戏结束。 ​ 使用空格键控制小鸟向上移动,在没有用户按键操作情况下,小鸟受重力影响会自行下落。

    3.1K20

    PyGame 入门专业游戏开发(三)

    如果要显示一段文字在游戏画面上,只需要: # 获得字体 SimSun 32 号 font = pygame.font.SysFont("SimSun", 32) # font字体渲染内容为 hello...显示和消失也是 add() 和 remove() 控制。...从上面的代码可以看到,游戏程序的所有“动态能力”,基本实现思想都是: 每个游戏对象在构造器或者初始化函数中,构建好所需的各种对象 通过每帧调用 update() 函数进行“驱动” 在每帧的时刻,进行用户操作检测...在每帧的时刻,计算出当前帧游戏的内部逻辑的状态 根据当前帧的状态,控制在屏幕上合适的位置,实现显示、消失 因此,游戏系统的动画,也大多数是如此实现,是通过一帧帧的逻辑,来决定如何显示下一个画面,从而形成一个动画...因为如果 update() 特别慢,整个游戏的运行就会感觉特别卡。 下一篇介绍如何实现麻将的移动动画,以及复杂的游戏逻辑判断。

    18110

    PyGame 入门专业游戏开发(一)

    pygame.event.get() 返回了当前瞬间的用户所有的操作,包括点击了关闭窗口,就是 pygame.QUIT 事件;还包括了当前键盘按键是否被按下,还是被释放;鼠标点击了哪个位置等等。...image 是图片对象,(x,y) 表示图片要显示的位置,两个坐标数表示。 但是,一般的游戏都不会仅仅是显示个图片,而是需要把很多个不同的图像,按照一定的规则来显示。...对象,如果不想显示某个对象, Group.remove(sprite) 从 Group 中删除这个对象即可。...根据上述设计,我开发两个简单的框架类,方便后面的游戏内容的填充: 文件名为 scenario.py '''游戏关卡管理器''' import pygame class Scenario():...而上面所说的主循环,关卡管理,游戏对象分层显示的代码,都可以通过 scenario.py 重复使用。在 Unity 和 Unreal 引擎中,上述功能往往也是不需要开发者自己实现的。

    29910

    游戏开发】Excel表格批量转换成lua的转表工具

    一、简介   在上篇博客《【游戏开发】Excel表格批量转换成CSV的小工具》 中,我们介绍了如何将策划提供的Excel表格转换为轻便的CSV文件供开发人员使用。...实际在Unity开发中,很多游戏都是使用Lua语言进行开发的。如果要用Lua直接读取CSV文件的话,又要写个对应的CSV解析类,不方便的同时还会影响一些加载速度,牺牲游戏性能。...在本篇博客中,马三将会和大家一起,C#语言实现一个Excel表格转lua的转表工具——Xls2Lua,并搭配一个通用的ConfigMgr来读取lua配置文件。...(对lua的查找表元素过程和元表、元方法等概念不熟悉的读者可以先去看一下这篇博客《【游戏开发】小白学Lua——从Lua查找表元素的过程看元表、元方法》)   好了,我们的配置文件也成功获取到了,下面该去读取配置文件中的内容了...最后还是要推荐一款优秀的成熟的转表工具XlsxToLua。

    5.3K40

    mybatis开发,你 xml 还是注解?我 pick ...

    好了,我们的论证部分就算是完了,我发现这个东西,视频真的几分钟就讲清楚了,描述起来还是有点困难的,难道是在逼我当UP主吗?...当然,如果你全是简单的 SQL 语句就能实现的功能,你可以注解开发。但是这个情况,我觉得还是在少数的。 同样,我们可以注解的形式实现所有 xml 文件能实现的功能。但是我觉得不太优雅。...所以,我觉得一个比较折中的方式是简单 SQL 可以注解开发,如果是一些有诸如条件判断类的需求的 SQL 还是要写在 xml 文件中。 不要为了拥抱注解,而完全摒弃了 xml 的形式。...还是拿文中的示例说明: 如果我们把返回值从 Integer 变成 int: ? 这个测试用例还是会正常查询出结果: ? 但是,如果我们查询一个数据库中不存在的人的年龄呢?比如这样: ?...即使 mybatis 帮我们挡了一下,我还是完美的踩了一个坑,写出了空指针异常。 代码是这样的,接收的时候我还是 Integer 去接收了: ? 但是接口调用方我手贱写成了这样: ?

    1.4K20
    领券