这是我第一次准备了这么详实的资料,把这些代码都用白纸抄写下来。因为看了一些教材,别人确实准备充分,想的效果是不一样。
godot是一个游戏引擎,所谓游戏引擎就是把大量的繁琐的代码通过编辑器来完成,这样效率更高,而且更容易入手。但是还是背后,特别是主要是设置,比如设置一些游戏的场景,设置一些材质,这些可以在游戏引擎里面完成。
但是说到游戏的互动还是要通过代码,godot用了一种叫做gdscript的语言来完成这种互动的交互。这种交互就来看一看坦克跟无人机战斗的可以说是游戏,它的互动的一些代码。
一句一句的来讲,假设从来没有接触过代码,通过这个代码可以认识一些英语,了解一下游戏背后的逻辑,还可以看看简单的加减乘除的数学在游戏里面有什么作用。
在这个叫做game manager的文件里面,事实上game就是游戏,manager就是管理游戏,管理了游戏,协调了游戏各个组件之间的关系。这个游戏可以看到。
首先来看这个语句,var其实是variable的缩写,因为程序员都很懒,像这些经常打的单词能少打几个字,能省很多时间。定VAR就是定义了一个变量,变量是什么东西?就是一个状态,把这个状态储存起来,或者把一个就像要做任何事情,要考试,同学要考试,我会把知识点储存在大脑里面,在需要的时候调用,也就考试的时候写在卷子上是一个道理。
wave,wave是一个加了一个冒号,冒号后面int其实就是integer,也就是整数类型的缩写。wave是一个整数类型,它的默认值是一,给它一个一,还有一个enemies remaining。
当然会有一些敌人,敌人还剩多少?这有可能是一个任务,比如很多游戏,就是消灭10个敌人之后就过关了或者就完成任务,这个是一样。
·spawn count是一个计数的意思,spawn也就是生成出现,因为不可能把1000个敌人全部放在游戏里面,那样会占用很多内存,所以在比如第一波消灭两个,消灭两个之后下一波会出4个,在消灭完前两个敌人之前,无人机之前,另外那四个无人机是不会出现的,这个就是一个计数器。
·spawn point是一个相对比较复杂一点的类别,它叫class,在程序里面除了简单的整数型、浮点型还有布尔型,也就是真假,还有一些叫做字符型,这种就是由简单的类型组成的复杂的类型。
比如游戏里面一个战士是我关心的,比如防御力是一个整数,攻击力是一个整数,但是这些整数的简单数据组合起来就是像我一样的战士的类型,它是密不可分的,分割就没有意义。
·level就是所在的关卡,level关卡打游戏都知道从简单开始要让你容易上手掌握一些操作,简单的关卡到复杂的,越来越有挑战性的关卡。
·spawn time是一个数据类型,冒号后面跟了一个数据类型,前边spawn time是这个变量的名字,而后面的timer是数据类型,就是一个时间计数器,现在手机里面都有,比如秒表,一按哒哒哒,从1到计数1分钟,计数2分钟,正数倒数都可以。
·time between spawn,也就是敌人不可能一次全部出现,between在两个之间,在两个无人机产生之间的距离,比如间隔1秒或间隔2秒。
这个上面就是所有的游戏里面所有的变量设置,每一个游戏引擎会给你很多方便快捷,节省很多时间,但它也有一些限制,比如只能在游戏里面某一些定义好的程序里面去做事情。比如像这个叫做function ready,就是当你的场景、资源全部调入以后,比如坦克或者无人机调入以后开始执行的代码,也就是初始化之后,准备好之后就开始执行好的代码。
level等于符号,它是在程序里面,不叫等于,它叫赋值。把get_tree,get_tree是godot里面的内置的程序,之所以有用游戏引擎就跟用一些程序包一样,每个游戏其实大家都知道差不多,都是干那些事。
如果都要来从开始写这些代码,可能是动不动就是多少个人要干多少年才能完成,那个是写游戏引擎的公司的人*事情。像Unreal大概10年前就开始接触,然后是在一代一代叠加,是做游戏引擎,游戏引擎是为写游戏的人服务的。
从头开发游戏,只能开发一些益智类的小游戏,像稍微大一点的、复杂的一点的游戏,我所知道的都是要借助游戏引擎。比如像get_tree,get_tree就是在所有游戏里面其实都是有一个相互的关系,比如打开的这个游戏就是一个跟节点,在游戏里面会看到有场景、有主角,也就可以操控的那个人,还有要挑战的敌人。
在这个里面就是一个无人机,主角可以操控的就是一个坦克,很无奈,就像俄乌战争中看到坦克一样,很快就被无人机包围贴近,因为在速度灵活性上坦克是赶不上无人机的,如果无人机再携带一点炸药,很快就会被炸的稀巴烂。
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved