程序不是看出来的,是写出来的!思想不是想出来的,是敲出来的!欢迎加群298136329交流技术问题!

Lua小游戏别撞车——添加广告及上线

Lua小游戏别撞车——添加广告及上线
本篇博客是在上一篇博客的基础上完成,接入广告和接入微信SDK一样,涉及到的知识是相同的,只是广告平台有多家,各位可以选择合适自己的广告平台,我接入的广告选择的是万普,各广告平台都有提供自己的接入接口,所以,只要我们学会了方法,不一样的地方就是java层的调用接口不同,而c++层,Lua层的调用是不用改变的。接下来就把这三个步骤的主要代码列出来,过程不再细说,请参考上篇博客,关于万普广告平台的使用请…

Lua小游戏别撞车——接入微信分享

Lua小游戏别撞车——接入微信分享
本次的游戏代码是使用lua完成,所以接入第三方的SDK也和c++层的方法稍有区别,首先来说明整体的思路。我们是在Android应用平台接入的微信分享,所以在这个平台下,也就是java层实现接入逻辑,留下给c++层调用的接口,c++层通过jni来调用java层实现业务逻辑的接口,而我们是在Lua中完成的游戏逻辑,所以我们还需要做的一个步骤就是,将c++的接口导出给lua层来使用,这个过程需要使用lu…

Lua小游戏别撞车——声音和数据的处理

Lua小游戏别撞车——声音和数据的处理
本篇博客添加数据和声音,先来完成声音的添加,同样需要将对声音的处理单独的写在一个模块中,留下接口函数给外部调用,我们新建一个lua文件专门来处理声音。SoundDeal = {audioEngine = cc.SimpleAudioEngine:getInstance()}EffectType = {Crash = "sound/crash.mp3",Newhigh = &qu…

Lua小游戏别撞车——碰撞检测

Lua小游戏别撞车——碰撞检测
红色小车和黄色小车的逻辑都已经完成了,本篇博客来做碰撞检测,当红色小车来不及躲避的时候发生碰撞游戏结束,那么如何判断俩辆小车碰撞了呢,我们可以通过俩辆小车的位置来确定,比如当他们的x和y坐标相同的时候就是发生了碰撞,再精确一点就是y坐标相同,x坐标的距离是俩辆小车的宽度之和的一半。甚么时候代表俩辆小车同向运动错开行驶了呢,y坐标有一个差值,x坐标和上边的一样。实际在运用的时候发现在lua中比较数字…

Lua小游戏别撞车——实现小车AI

Lua小游戏别撞车——实现小车AI
游戏的一个重要逻辑就是黄色小车变换轨道,红色小车在玩家的控制下避开黄色小车以免发生碰撞,红色小车变轨是玩家控制的,而黄色小车是自动变轨的。上篇博客我们将红色小车和黄色小车的运动分开做了处理,本篇博客就实现一下黄色小车的运动,使黄色小车可以自动变轨。我们将黄色小车的变轨放到固定的俩个点处,一个是由外圈轨道进入到内圈轨道处,另一个是由内圈轨道进入到外圈轨道处。小车在运动的过程中,通过概率来计算是否要进…

Lua小游戏别撞车——小车变换轨道

Lua小游戏别撞车——小车变换轨道
本篇博客实现该游戏的一个重要逻辑——小车变轨。如果小车是在做直线运动变轨非常容易,只是y坐标的不同而已,但是如果小车做的是圆周运动这个变轨就不那么容易了。当然,你可以有多种方法来解决这个问题,我这里使用的是数学计算的方法,大家看一下如下的示意图。当小车做圆周运动变轨的时候,相对于圆心的夹角是不变的,我们可以在小车是外圈轨道的时候计算出这个夹角,然后根据半径乘以这个角度分别得到x和y方向的坐标,然后…

Lua小游戏别撞车——实现圆周运动

Lua小游戏别撞车——实现圆周运动
有了上篇博客的基础,我们先来实现一下游戏的主要逻辑,让小车做圆周运动,运动的过程中做碰撞检测,在适当的时候响应用户的触摸事件。我们不打算一下子做完所有的工作,第一步我们先来实现一个圆周运动。如下图所示,小车的运动轨迹包括一个圆周运动一个直线运动,直线运动很简单,但是圆周运动在Cocos中并没有提供,这个时候就需要我们自己来实现一个圆周运动了。我不打算在Lua层实现一个圆周运动,因为某些接口函数没有…

Lua小游戏别撞车——搭建开始场景

Lua小游戏别撞车——搭建开始场景
从本篇博客开始用纯Lua脚本写一个小游戏——别撞车。自从网站写完游戏实例飞机大战以后就再没有更新其他游戏demo了,最近三个月以来博客数目也很少,期间也在断断续续的学习Cocos2d-x,可能是最近三个月比较消极吧!刚刚参加工作还比较迷茫,自己还没有做好准备就工作了,哎,好快啊!好吧,牢骚就到这里吧,从本篇博客开始写一个小游戏,主要的目的是练习Lua,我们都知道Cocos将2dx中的类作为模块导出…

绑定自定义类到Runtime(Lua-binding)

绑定自定义类到Runtime(Lua-binding)
现在我们的需求是:在c++层定义了一些类,我们需要将这些类导出给Lua来使用,从而完成在c++层实现起来容易的需要,这个时候就需要将整个类作为模块导出。而Cocos2d-x正是采用的这种思想,将Cocos中的类导出供用户使用,而不是再写一套Lua代码,用户使用Cocos导出的这套接口,在Lua脚本层写游戏代码。为了更好的理解这部分的内容,可以先看一下在Lua中调用c++函数这篇博客,了解c++中调…

在Lua中调用c++函数

在Lua中调用c++函数
现在我们需要在Lua中调用c++的函数,完成Lua语言实现起来不太方便的功能,这种方法网上有很多说明,但是写得不够详细,初学者看了一头雾水,下面我写一下自己的方法,目的仅仅是让我们先把程序跑起来!首先来看下代码,然后说配置(在Mac下演示),再解释代码。#include <iostream>#ifdef __cplusplusextern "C"{#endif#in…