Uh? So, just a common tennis game? What a waste.. considering you have spider-like players with suction feet! Where your player could move around and stretching their legs, only to let go of the rest and snap back to a specific location with the press of a button for reach or added speed/power. You are welcome.
Tried re-creating the OnScreenKeyboard for my project and when using "OnScreenKeyboard.set_on_screen_input_vector(input_vector)" for the player script, it says "Identifier "OnScreenKeyboard" not declared in the current scope.". Very new to Gdscript and coding in general. I downloaded the source code godot project file from this to see how it works but can't seem to figure out how it works on this end but not on mine.
In Godot 4, the margin properties have been moved from the HBoxContainer into the MarginContainer object in case anyone is having trouble following that part.
great tutorial, one thing is that it doesn't work in compatability mode, so i was wondering if you had alternatives? im participating in a game jam so i might have the answer tomorrow but its best not to coutn your eggs before they hatch, anwyays thank you, very cool and nice stuff youre doing for the community
This is the most informative and concise video I have ever seen demonstrating specific gameplay with godot. I have spent (admittedly not a ton of time) probably 10 or so hours trying to learn, and hardly got anywhere with it. I know a good bit of python and was honestly considering just using pygame before seeing this. Thank you.
Wow men thanks for shearing I took a full course on programming to start doing games on Godot, I know the basics but never tough this could be done!, amazing.
thanks for the great tutorial. Needed to adapt some things for Godot4, but in general it was very helpful to get the hardware cursor scale up on resolution change
@@nitinsurendran8959 i believe you are talking about the changes for an export variable to change in the inspector? Thats @export var varName : Texture
Nice work, but just to address the elephant in the code.... Does anyone have a fix for the UV looping problem? Look at the middle 'T', it is out of sync with the rest, looks like the UV is wrapping from 0-1 halfway along?
I don't know how to fix it, but I think what's going on is that similar characters get placed at the same heights? So because T has already been drawn, the second T is the same height as the first T, same with O, A, and Y.
use VERTEX.x instead of UV.x : VERTEX.y += wave_height * sin((wave_frequency * VERTEX.x) + (wave_speed * TIME)); also a way smaller number for frequency. basically 1/whatever it was before
Hi, can you please let me know how you were able to create the line for the character attack: "set_health($Background/EnemyHealth/ProgressBar, current_enemy_health)" It gives me an error message saying: "Too few arguments for "set_health()" call. Expected at least 3 but received 2." Edit: Nevermind, I completely missed the next argument somehow lol
Hi, I got up to the point where he was defining the "func set_health(progress_bar, health, max_health):", but I got stuck on the line "progress_bar.get_node("Label").text = "HP: %d/&d" %[health, max_health]". The progress bar doesn't change at all. what should I do? Edit: Nevermind, I just had to chnage it to "HP: %s/&s" %[health, max_health]"
Heres my version of your script (gd 4): edit to add a signal because why not extends CanvasLayer signal dialogue_finished enum State { READY, READING, FINISHED } const CHAR_RATE = 0.075 @onready var label = $Container/TextContainer/Panel/Label @onready var bg = $Container/BG var tween: Tween var state: State func _ready(): _hide() state = State.READY func _process(delta): match state: State.READING: if Input.is_action_just_pressed("ui_select"): _finish() State.FINISHED: if Input.is_action_just_pressed("ui_select"): _hide() dialogue_finished.emit() state = State.READY func _hide(): label.text = "" label.visible_ratio = 0 bg.visible = false func _show(): bg.visible = true tween = create_tween() tween.finished.connect(_finish) func _finish(): tween.stop() label.visible_ratio = 1 state = State.FINISHED func _display_dialogue(lines): if state != State.READY: return label.text = lines _show() tween.tween_property(label,"visible_ratio",1,len(lines) * CHAR_RATE) state = State.READING