这一章题目挺让人激动啊。我的编程语言基本不会,这可怎么办,不知道有没有影响。
作为新手,设计一个游戏的话,先要有游戏的思路吧,至于编程这样的活,哎,不知道好不好干。我认为把常用的功能先能写出来,其他的慢慢查手册就可以。
我想设计什么样的游戏呢?
雷电、泡泡龙、俄罗斯方块、打地鼠,仙剑类升级的,暗黑类即时的。
跑远了,先来看教程。
地址:http://docs.godotengine.org/en/3.0/getting_started/step_by_step/your_first_game.html
位置:Docs » Step by step » Your First Game
总览:这个教程会指导你制作第一个Godot游戏,你会学到GODOT编辑器怎么工作,怎么构建一个项目,怎么制作2d游戏。
提示:需要有编程经验。如果你是萌萌心,先看这里http://docs.godotengine.org/en/3.0/getting_started/step_by_step/scripting.html#doc-scripting
这个游戏叫“躲开小爬爬”,你的角色要移动躲避敌人,和雷电躲子弹类似。
开始。
下载资源包http://docs.godotengine.org/en/3.0/_downloads/dodge_assets.zip,并解压。
打开Godot,创建新项目,把刚刚解压的文件移动到项目所在文件夹。
这个游戏需要竖屏,所有先来设置画面尺寸。宽480,高720
在这个项目中,我们要制作3个独立的场景:Player, Mob, HUD
我们首先来制作Player场景,制作独立的场景的好处是方便测试。
新建一个节点,选择Area2d,双击名字改成Player
选中player,添加一个新节点: AnimatedSprite
这个就是我们要移动的小人,
在Frames这里,点击null,选择新建,再次点击这个位置,进入设置,
把重命名up,再添加一个重命名为right,把下载的资源里的2张图片分别添加进来。
再次点击上方场景节点处的AnimatedSprite,把小人的大小改一改,scale改成0.5×0.5
这样一个player的图片就做好了,但是这只是个图片,怎么判断人物被击中了呢,需要在人物周围有一个框,碰到这个框就算击中,这个框就是我们下面要添加的另一个节点。
选中player,添加节点,CollisionShape2D,选中新添的节点,下方,shape选择New CapsuleShape2D
把这个节点的框调整到和小人一样大。
接下来写控制小人的脚本。
选中player,添加脚本。
extends Area2D
func _ready():
screensize = get_viewport_rect().size
export (int) var speed # 移动速度,添加后,在右边可以看到多了一个speed变量
var screensize # Size of the game window.
func _process(delta):
var velocity = Vector2() # The player's movement vector.
if Input.is_action_pressed("ui_right"):
velocity.x += 1
if Input.is_action_pressed("ui_left"):
velocity.x -= 1
if Input.is_action_pressed("ui_down"):
velocity.y += 1
if Input.is_action_pressed("ui_up"):
velocity.y -= 1
if velocity.length() > 0:
velocity = velocity.normalized() * speed
$AnimatedSprite.play()
else:
$AnimatedSprite.stop()
#下面这段很有意思,如果没有的话,你会发现小人没有移动,其实动了。想象你再广阔的宇宙中,宇宙中除了你什么都没有。你向上下左右移动,其实还相当于......在原地。
position += velocity * delta
position.x = clamp(position.x, 0, screensize.x)
position.y = clamp(position.y, 0, screensize.y)
运行看看。(新手就是新手啊,出现了好多问题,哎,总算一一解决了。555555)现在还有个问题,小人的眼睛不会动。
累了,待续。