Menu
CoddyTech

Kahraman: Çıkıntıya Ulaş

Coddy'nin Godot Journey'sinin Girdi ve Hareket bölümünün bir parçası. Ders 28 / 28.

Hedef, bayrağın bulunduğu yüksek çıkıntıdır. Kahraman, içinde Başardın! yazan, gizli bir Label olan Banner taşır.

Yerdeyken kahramanın position.y değeri 278'dir. Basamaktayken 218, çıkıntıdayken ise 158'dir. Yani kahraman yerdeyken ve position.y değeri 170'in altındayken çıkıntıdadır:

if is_on_floor() and position.y < 170:
	$Banner.visible = true

is_on_floor() kısmı önemlidir. Yerden yapılan bir sıçrama da bir anlığına 170'in altına iner, ancak bu sırada kahraman havadadır.

Kazanmak için önce çukurun üzerinden, sonra basamağa, ardından da çıkıntıya zıpla.

challenge icon

Görev

Orta

Kahraman çıkıntıya ulaştığında bir afiş göster.

  1. _physics_process() işlevinin sonuna bir if ekle: is_on_floor() ve position.y < 170.
  2. İçinde $Banner öğesini göster.

“Oyna” düğmesine bas ve çıkıntıya tırman: Afişte You made it! görünür. Ardından “Kontrol et” düğmesine bas.

Kendin dene

extends CharacterBody2D

var speed = 220
var acceleration = 1200
var friction = 2400
var gravity = 1000
var jump_velocity = -500
var start_position = Vector2()

func _ready():
	start_position = position

func _physics_process(delta):
	velocity.y += gravity * delta
	if Input.is_action_just_pressed("jump") and is_on_floor():
		velocity.y = jump_velocity
	var direction = Input.get_axis("move_left", "move_right")
	if direction == 0:
		velocity.x = move_toward(velocity.x, 0, friction * delta)
	else:
		velocity.x = move_toward(velocity.x, direction * speed, acceleration * delta)
	if direction > 0:
		$Look.scale.x = 1
	if direction < 0:
		$Look.scale.x = -1
	move_and_slide()
	if position.y > 400:
		position = start_position
		velocity = Vector2(0, 0)
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Girdi ve Hareket bölümündeki tüm dersler

Kendi başına pratik yap: Godot playground