In this article I will guide you to create characters for shooter game with Godot.
| Join the channel Telegram belong to Anonyviet 👉 Link 👈 |
Create character
First of all, download Art.
Link: https://opengamaeart.org/content/animated-top-down-survivor-player
AnimatedSprite
First, delete the Sprite and add yourself to the node node AnimatedSprite.![[Godot Shooter] #2: Creating character & shooting 26 [Godot Shooter] #2: Create character & shoot bullets 25](https://anonyviet.com/wp-content/uploads/2020/08/1-1.jpg)
Then create a new frame
![[Godot Shooter] #2: Creating character & shooting 27 [Godot Shooter] #2: Creating character & shooting 26](https://anonyviet.com/wp-content/uploads/2020/08/2-2.jpg)
Then add for me
3 Animation is: IDLE – Move – Shoot
Handgun – Rifle – Shotgun you can get in
![[Godot Shooter] #2: Creating character & shooting 28 [Godot Shooter] #2: Creating character & shooting 27](https://anonyviet.com/wp-content/uploads/2020/08/3-2.jpg)
Pull all 3 of them
![[Godot Shooter] #2: Creating characters & shooting 29 [Godot Shooter] #2: Creating character & shooting 28](https://anonyviet.com/wp-content/uploads/2020/08/4-2.jpg)
Set collisionShape2D again.
![[Godot Shooter] #2: Create character & shoot bullets 30 [Godot Shooter] #2: Creating characters & shooting 29](https://anonyviet.com/wp-content/uploads/2020/08/5-2.jpg)
Code:
Next is the code. We will check if the player moves, we will run Animation Move and stand still to run Animation Idle, shoot, then run Animation Shoot.
![[Godot Shooter] #2: Creating character & shooting 31 [Godot Shooter] #2: Create character & shoot bullets 30](https://anonyviet.com/wp-content/uploads/2020/08/6-2.jpg)
Next because this is a shooter we have to let its character rotate in the direction of the mouse, we have the statement: look_at(get_global_mouse_position())
![[Godot Shooter] #2: Create character & shoot bullets 32 [Godot Shooter] #2: Creating character & shooting 31](https://anonyviet.com/wp-content/uploads/2020/08/7-3.jpg)
Next set the camera to look easy:
Add Camera2D node in zoom to adjust it to look easy to see.
![[Godot Shooter] #2: Creating character & shooting 33 [Godot Shooter] #2: Create character & shoot bullets 32](https://anonyviet.com/wp-content/uploads/2020/08/8-2.jpg)
Shot
Next we will create bullets to shoot piu piu
Link down: https://drive.google.com/file/d/1fr4xntr-s5qs49g5n98in3otvlvjyxan/View ?USP=sharing
Please download it.
Done then create a new sensing
The original button is Area 2D to check when the bullet collides
Collisionshape2d
Sprite
![[Godot Shooter] #2: Creating character & shooting 34 [Godot Shooter] #2: Creating character & shooting 33](https://anonyviet.com/wp-content/uploads/2020/08/9-1.jpg)
You pull the image of the bullet into Sprite
Then set Collisionshape2d
Then change the name to Bullet
![[Godot Shooter] #2: Create character & shoot bullets 35 [Godot Shooter] #2: Creating character & shooting 34](https://anonyviet.com/wp-content/uploads/2020/08/10-3.jpg)
Create a new script
![[Godot Shooter] #2: Creating character & shooting 36 [Godot Shooter] #2: Create character & shoot bullets 35](https://anonyviet.com/wp-content/uploads/2020/08/11-2.jpg)
Here I will add 1 function so that the bullet can spawn in some position you want and damage (damage)
func start_at(pos, dir): position = pos rotation = dir velocity = Vector2(speed, 0).rotated(dir)
Position = POS: Means the position of the bullet will reject the POS
rotation = rotation of bullets
![[Godot Shooter] #2: Create character & shoot bullets 37 [Godot Shooter] #2: Creating character & shooting 36](https://anonyviet.com/wp-content/uploads/2020/08/12-2.jpg)
Next, you will create a function to assign the speed of the bullet so that it can fly
func _physics_process(delta): position += velocity * delta
![[Godot Shooter] #2: Creating character & shooting 38 [Godot Shooter] #2: Create character & shoot bullets 37](https://anonyviet.com/wp-content/uploads/2020/08/13-1.jpg)
Well, remember to shoot 2 buttons Sprite and Collishape Sang horizontally if you don’t want it to shoot vertical
Then next we must check if the bullet is out of the screen, it cancel itself so that the volume will not be lag.
Then you add buttons VisibilityNotifier2d Then adjust the dog okay. Then connect the signal screen_exit (escape from the screen)
![[Godot Shooter] #2: Create character & shoot bullets 39 [Godot Shooter] #2: Creating character & shooting 38](https://anonyviet.com/wp-content/uploads/2020/08/15-5.jpg)
![[Godot Shooter] #2: Create character & shoot bullets 40 [Godot Shooter] #2: Create character & shoot bullets 39](https://anonyviet.com/wp-content/uploads/2020/08/16-3.jpg)
Then in that sentence we added the command: queue_free()
![[Godot Shooter] #2: Creating character & shooting 41 [Godot Shooter] #2: Create character & shoot bullets 40](https://anonyviet.com/wp-content/uploads/2020/08/17-1.jpg)
Then we will shoot it.
Before that, you need to have a bullet sense to be able to add it and use onReady to run, it will be loaded.
![[Godot Shooter] #2: Create character & shoot bullets 42 [Godot Shooter] #2: Creating character & shooting 41](https://anonyviet.com/wp-content/uploads/2020/08/18.jpg)
Then check if pressing the key F It will shoot
![[Godot Shooter] #2: Creating characters & shooting bullets 43 [Godot Shooter] #2: Create character & shoot bullets 42](https://anonyviet.com/wp-content/uploads/2020/08/19-1.jpg)
get_parent().add_child(b): Meaning it will take parents and add_child means adding a bullet button if there is a video, I will illustrate easier.
b.start_at(global_position,rotation) : Global_position = the position of the character, rotation is the rotating angle.
When shooting, you will see it appearing in the middle of the player, we need to adjust it out of the gun. So do the following.
You add the Position2D button and then pull it in the place you want the bullet to appear
![[Godot Shooter] #2: Creating characters & shooting bullets 44 [Godot Shooter] #2: Creating characters & shooting bullets 43](https://anonyviet.com/wp-content/uploads/2020/08/20-1.jpg)
Next, simply you just need to add $ position2d before the global_position to spawn in the above place
![[Godot Shooter] #2: Create character & shoot bullets 45 [Godot Shooter] #2: Creating characters & shooting bullets 44](https://anonyviet.com/wp-content/uploads/2020/08/21-1.jpg)
And if you run, you will encounter the case like photos
![[Godot Shooter] #2: Creating characters & shooting bullets [Godot Shooter] #2: Creating characters & shooting bullets](https://anonyviet.com/wp-content/uploads/2020/08/22.jpg)
And the next article will have a fix
Code Player:
extends KinematicBody2D
export var speed = 200
onready var bullet = preload("res://Canh/Bulet.tscn")
func _physics_process(delta):
look_at(get_global_mouse_position())
laydau_nhapvao(delta)
func laydau_nhapvao(delta):
var vector_dauvao = Vector2.ZERO
vector_dauvao.x = Input.get_action_strength("ui_right") - Input.get_action_strength("ui_left")
vector_dauvao.y = Input.get_action_strength("ui_down") - Input.get_action_strength("ui_up")
vector_dauvao = vector_dauvao.normalized()
if vector_dauvao != Vector2.ZERO:
$AnimatedSprite.play("move")
else:
$AnimatedSprite.play("idle")
var dichuyen = vector_dauvao * speed * delta
if Input.is_key_pressed(KEY_F):
shoot()
dichuyen = move_and_collide(dichuyen)
func shoot():
var b = bullet.instance()
get_parent().add_child(b)
b.start_at($Position2D.global_position,rotation)









