ירו קליעים
חלק מהיחידה פרויקטים במסלול ה-Godot של Coddy. שיעור 14 מתוך 36.
E או Enter (מקש action) יורה קליע. קליע הוא סצנה, bullet.tscn. הסקריפט שלו מטיס אותו קדימה ומסיר אותו אחרי 0.8 שניות. הספינה יוצרת אחד בקצה הקדמי שלה, מכוונת אותו לאותו כיוון ומוסיפה אותו למשחק:
if Input.is_action_just_pressed("action"):
var bullet = BULLET.instantiate()
bullet.position = position + Vector2.UP.rotated(rotation) * 18
bullet.rotation = rotation
get_parent().add_child(bullet)הוסיפו את הקליע להורה של הספינה. צאצא נע ומסתובב יחד עם ההורה שלו, ולכן קליע שנמצא על הספינה ינוע איתה.
is_action_just_pressed מחזיר true רק בפריים שבו לוחצים על המקש. כל לחיצה יורה קליע אחד.
אתגר
בינוניירו קליע בלחיצה על E.
- הוסיפו
const BULLET = preload("res://bullet.tscn"). - כשלוחצים על
action, צרו קליע 18 פיקסלים לפני החללית, עם ה־rotationשל החללית. - הוסיפו אותו להורה של החללית בעזרת
get_parent().add_child(bullet).
לחצו על "שחק" ואז על E: קליע עף מחרטום החללית. לאחר מכן לחצו על "בדיקה".
נסו בעצמכם
extends CharacterBody2D
const TURN_SPEED = 4.0
const THRUST = 300
func _physics_process(delta):
rotation += Input.get_axis("move_left", "move_right") * TURN_SPEED * delta
if Input.is_action_pressed("move_up"):
velocity += Vector2.UP.rotated(rotation) * THRUST * delta
$Flame.visible = Input.is_action_pressed("move_up")
position += velocity * delta
if position.x < 0:
position.x += 640
if position.x > 640:
position.x -= 640
if position.y < 0:
position.y += 360
if position.y > 360:
position.y -= 360
כל השיעורים ביחידה פרויקטים
תרגלו בעצמכם: Godot אונליין