GODOT游戏编程006---- Your First Game

这一章题目挺让人激动啊。我的编程语言基本不会,这可怎么办,不知道有没有影响。
作为新手,设计一个游戏的话,先要有游戏的思路吧,至于编程这样的活,哎,不知道好不好干。我认为把常用的功能先能写出来,其他的慢慢查手册就可以。
我想设计什么样的游戏呢?
雷电、泡泡龙、俄罗斯方块、打地鼠,仙剑类升级的,暗黑类即时的。
跑远了,先来看教程。
地址: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)现在还有个问题,小人的眼睛不会动。

累了,待续。

猜你喜欢

转载自blog.csdn.net/weixin_42944682/article/details/81844008