最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

十分鐘制作橫版動(dòng)作游戲|Godot 4 教程《勇者傳說》#0

2023-05-27 10:43 作者:瓦格良  | 我要投稿

《勇者傳說?#0》教程筆記

設(shè)置窗口:

像素風(fēng)設(shè)置:

1、項(xiàng)目設(shè)置 =》打開高級設(shè)置 =》 顯示 =》 窗口



場景:

  1. 新建2D場景并重命名為World
  2. 添加一個(gè)子節(jié)點(diǎn)TileMap
  3. 在TileMap右側(cè)檢查器中Tile Set屬性中選擇新建TileSet
  4. 點(diǎn)擊TileSet,展開Physics Layer,點(diǎn)擊添加元素
  5. 切換到底部的TileSet面板
  6. 把事先準(zhǔn)備好的素材圖片拖入圖塊,彈窗選擇否(是否在不透明紋理區(qū)創(chuàng)建)
  7. 在基礎(chǔ)圖塊中選擇自己想要使用的圖塊
  8. 切換到繪制選項(xiàng),選擇物理層0,對圖塊涂抹,即可設(shè)置好碰撞區(qū)域


9.切換到下方的TileMap面板,選擇圖塊進(jìn)行繪制

  1. 左鍵繪制
  2. 右鍵刪除
  3. 安裝shift是畫直線
  4. 按住crtl+shift是畫矩形

10.保存當(dāng)前場景

11.選擇其他節(jié)點(diǎn)新建場景

12.新建節(jié)點(diǎn)CharacterBody2D,改名為Player,添加子節(jié)點(diǎn)Sprite2D(用來顯示圖像)

13.將事先準(zhǔn)備好的玩家動(dòng)畫圖片拖入Sprite2D,圖片放大后默認(rèn)比較模糊

14.在項(xiàng)目=》項(xiàng)目設(shè)置=》渲染=》紋理=》默認(rèn)紋理過濾 改為 Nearest


15.在右側(cè)Region中勾選Enable,點(diǎn)擊編輯區(qū)域,吸附模式修改為柵格吸附,步長設(shè)置為56*56像素,圈起第一行的6幀動(dòng)畫

16.在右側(cè)Animation中,修改Hframes(水平幀數(shù))為6


17.調(diào)整角色最下中點(diǎn)到原點(diǎn)

18.在根節(jié)點(diǎn)下添加CollisionShape2D節(jié)點(diǎn),定義碰撞形狀,在右側(cè)Shape屬性中新建RectangleSharp2D,并調(diào)整大概位置覆蓋角色主體

19.添加AnimationPlayer節(jié)點(diǎn),用來定義動(dòng)畫,新建動(dòng)畫命名為idle


20.設(shè)置總長度為0.6秒,打開循環(huán)

21.切換到Sprite2D節(jié)點(diǎn),點(diǎn)擊右側(cè)Region的Rect屬性右側(cè)的鑰匙符號添加關(guān)鍵幀,點(diǎn)擊Hframes添加關(guān)鍵幀,F(xiàn)rame添加關(guān)鍵幀,因?yàn)橛?幀動(dòng)畫,所以要添加6個(gè)Frame關(guān)鍵幀


22.按照上面的做法再添加running動(dòng)畫


23.再制作jump動(dòng)畫


24.保存當(dāng)前場景

25.在Player場景的根節(jié)點(diǎn)添加腳本控制角色的行為


26.編寫腳本

extends CharacterBody2D


# 獲取引擎給的重力加速度
var gravty := ProjectSettings.get("physics/2d/default_gravity") as float


func _physics_process(delta: float) -> void:
	velocity.y += gravty * delta
	move_and_slide()

27.在World場景的根節(jié)點(diǎn)實(shí)例化角色



28. 在項(xiàng)目=》項(xiàng)目設(shè)置=》輸入映射添加3個(gè)按鍵

  1. move_left(A)
  2. move_right(D)
  3. jump(空格)


29. 完整腳本

extends CharacterBody2D
@onready var animation_player: AnimationPlayer = $AnimationPlayer
@onready var sprite_2d: Sprite2D = $Sprite2D




const RUN_SPEED := 200.0
# 是負(fù)數(shù)的原因是因?yàn)樵?D空間中y軸向上為負(fù)
const JUMP_VELOCITY := -300.0
# 獲取引擎給的重力加速度
var gravty := ProjectSettings.get("physics/2d/default_gravity") as float


# 每個(gè)物理幀調(diào)用一次
func _physics_process(delta: float) -> void:
	# 獲取按鍵輸入
	var direction :=  Input.get_axis("move_left","move_right")
	# 修改速度向量
	velocity.x = direction * RUN_SPEED
	velocity.y += gravty * delta
	
	# 如果在地板上并且按下了jump鍵,那么就修改角色y坐標(biāo)變?yōu)樘S值
	if is_on_floor() and Input.is_action_just_pressed("jump"):
		velocity.y = JUMP_VELOCITY
	
	# 如果在地板上,沒有移動(dòng)則播放idle動(dòng)畫,有移動(dòng)則播放running動(dòng)畫,如果不在地板上則播放jump動(dòng)畫
	if is_on_floor():
		if is_zero_approx(direction):
			animation_player.play("idle")
		else:
			animation_player.play("running")
	else:
		animation_player.play("jump")
	
	# 如果在移動(dòng),并且是向左移動(dòng),那么將角色水平翻轉(zhuǎn)
	if not is_zero_approx(direction):
		sprite_2d.flip_h = direction < 0
	move_and_slide()


十分鐘制作橫版動(dòng)作游戲|Godot 4 教程《勇者傳說》#0的評論 (共 條)

分享到微博請遵守國家法律
万源市| 博兴县| 仁怀市| 启东市| 衡阳县| 宣恩县| 柘城县| 扶绥县| 辉县市| 嵊州市| 尤溪县| 临城县| 汝城县| 渝中区| 丹凤县| 唐海县| 镇平县| 肥西县| 宝应县| 磐安县| 鱼台县| 凤阳县| 乃东县| 武冈市| 麟游县| 华宁县| 河源市| 赞皇县| 溧阳市| 漳州市| 临泽县| 广饶县| 富川| 德安县| 江华| 龙川县| 靖边县| 麦盖提县| 延安市| 沁源县| 集贤县|