Nerdzmasterz I checked it out again, one of the error is the debugger questioning the existence of "weapon0" which makes sense, I can fix that easily. Still, I wonder if running a foor loop for the entire game could hamper performance or something.

Edit: Yeah, I fixed that error. Performance still seems okay but, I'm not sure.

Edit again: I'm going to try and break my own code just to stress test it. I suspect that something could be wrong with it, because there is no elif condition that prevents certain type of errors if I were to press multiple weapon numbers at once. Will be back to tell you what's up.

Nerdzmasterz Okay, so there doesn't seem to be any problems with this appoarch. Still, I suspect that their might be a problem with it where performance is concerned( though I can't see it all). I'm not sure if anyone should be using foor loops in this fashion. All of this code is running in the process function, which means that the foor loop is running repeatedly. In my programmer noob opinion, that has got to cause problems( or I could be wrong about something).

Things always get hot when I'm not online. It's a crying shame.
Here's a band I weirdly have never mentioned here. Punk/Rock cover band for old ass pop songs. It features Fat Mike from NOFX if anybody at all remember them.

Oh, yeah. Don't put a for loop in process. I've always read to only have for loops in functions that are not constant. One could have a function like switch_weapons() that does this instead. Then call the function each time you need to switch whatever weapon is being used.

    Nerdzmasterz Yeah but, how do I call that function with an input when the function determines the input that I'm suppose to be using?

    The input should determine the function, usually- at least for me. Have the process function check if the input is being used. If so, call the function with the correct weapon. Something like this in the _process function:

    if Input.is_action_pressed("Whatever_input):
        #switch_weapon_function

      Speaking of inputs, I just came across this very fast-paced Youtube video that talked about using Joysticks.

      Not everyone here can get Youtube, so...

      The Joystick code:

      extends Area2D
      
      onready var big_circle = $BigCircle
      onready var little_circle = $BigCircle/LittleCircle
      
      onready var max_distance = $CollisionShape2D.shape.radius
      
      var touched = false
      
      func _input(event):
      	if event is InputEventScreenTouch:
      		var distance = event.position.distance_to(big_circle.global_position)
      		if not touched:
      			if distance < max_distance:
      				touched = true
      		else:
      			little_circle.position = Vector2(0, 0)
      			touched = false
      
      func _process(delta):
      	if touched:
      		little_circle.global_position = get_global_mouse_position()
      		#Clamp the little circle
      		little_circle.position = big_circle.position + (little_circle.position - big_circle.position).clamped(max_distance)
      		
      func get_velo():
      	var joy_velo = Vector2(0,0)
      	joy_velo.x = little_circle.position.x / max_distance
      	joy_velo.y = little_circle.position.y / max_distance
      	return joy_velo

      And the player code:

      extends KinematicBody2D
      
      export var speed = 300
      var velocity = Vector2(0, 0)
      
      
      # Called when the node enters the scene tree for the first time.
      func _ready():
      	pass # Replace with function body.
      
      
      # Called every frame. 'delta' is the elapsed time since the previous frame.
      func _process(delta):
      	velocity = $CanvasLayer/Joystick.get_velo()
      	move_and_slide(velocity * speed, Vector2.UP)

      And the layout:


      Nerdzmasterz Yeah but, my goal here is to replace the wall of if/else statements that I had. I mean, they're gone now and my code seems to be working alright, I just wanted to remove that for loop fro the process function just in case in causes future problems( though I don't see any problems now).
      Another potentional problemt( that hasn't arised yet) is that I could get some sort of error if I press two weapon number buttons at the same time. Even though I didn't get the error when I pressed multiple number keys at once, it this could help since I've gotten there is no elif code in this arrangement.

      Anyway, I found some sort of way to moe the for loop outside of the process function with something like this:

      func _input(event):
      	if event is InputEventKey:
      		for i in 6:
      			if i !=0:if Input.is_action_just_pressed("weapon"+String(i)) and i-1 in weapon_numbers:weapon_switching(weapon_numbers.find(i-1))

      Of course, all the other problem I might fear could still come up in the future, which is why I want to solve it now. I know I'm basically trying to fix what isn't broken, since my game was working just fine with that wall of if/else statements. However, I want to take programming more seriously and get better at it until it becomes second nature.

      Right now, I've solve the problem of this loop from running repeatedly in process. Now I have to find a way to get it to stop running when I'm not precessing any of the number keys and I have an idea as to how. The only problem that I have no idea to solve is what I'd do without that elif condition. I know that it doesn't seem like a problem now but, I want to be thorough.

      Edit: Okay, so I don't know how to get it to stop running when I'm not pressing the number keys. 😆

      DaveTheCoder What if Kubrick secretly died during the filming of Dr. Strangelove (from laughing uncontrollably at Peter Sellers), and NASA produced his subsequent movies using a Kubrick impersonator?

      Laughing at Peter Sellers: Clouseau interrogates the staff.

      Okay I was hoping this would be easy, but perhaps not. Is there a way to use a second joystick to control rotation of the player, so you can strafe and move with one stick and turn left and right with the other. Is it possible? I was looking at the 2D movement in the docs, but nothing I checked seems to be working.

      Note: The camera is set to current and rotating is on.

        Only movement should be handled in _process() (or _physics_process()). The docs say to put it in _physics_process(), but this only works if you use a 60Hz monitor, which many people don't these days. I think they fixed the interpolation with the new version of Godot, but I haven't tested how it works yet.

        However, any infrequent or sparse events (jumping, weapon reload or switching, opening doors, using health, etc.) should be handled in _input().

        func _input(event):
            if event.is_action_pressed("jump"):
                player.velocity.y -= 32
            var weapon_pressed = 0
            for i in range(1, 7):
                if event.is_action_pressed("weapon" + str(i)):
                    weapon_pressed = i
            match weapon_pressed:
                1:
                    print("you pressed weapon 1")
                2:
                    print("you pressed weapon 2")
        ...
                6:
                    print("you pressed weapon 6")

        I've been playing this game Shadow Warrior (2013) and it's a ton of fun. Basically like the original DOOM with swords and cheesy Hong Kong theme. It came out in 2013, but the graphics look like an Xbox 360 game. I'm only like 2 hours in, but it's just a lot of fun without nonsense. You can see here (note, this is a video of the ENTIRE game, so don't watch too far if you want to play it).

        I feel pretty confident I could do graphics similar to this. My game is sort of a mix between the original F.E.A.R. and the first Mirror's Edge, so I think graphics from that time period would be acceptable (or maybe even help the classic feel of the game). What do you think?

          Shadow Warrior was great.

          Fully destructible bicycles!

          Shadow Warrior 2 had one of the best trailers songs.

          I haven't tried Shadow Warrior 3. The user ratings aren't that good.

          If you like them, give Hard Reset a try. That's the first game from Flying Wild Hogs (the Shadow Warrior devs), a fun and intense cyberpunk shooter.

          Yeah, Hard Reset was pretty good. I mean, the game itself was rough, but it was fun. I think the remaster fixed some of the balancing issues, but I only played the first level (I beat the original game when it came out).

          A few problems with it, but it was fast and looked cool.
          Flying Wild Hog included developers from People Can Fly who worked on Painkiller, another great FPS.

          Yeah, I like games like this where you can just run around and shoot. I don't want to watch 45 minute cut scenes, I don't want to do like 150 fetch quests, or spend 30 minutes walking in an open world to find the next marker. The game does not have to be 80 hours long. Just make it fun.

            cybereality I don't want to watch 45 minute cut scenes

            I mean I don't mind them if they are skip-able. But if they want me to watch them then the writing and the cinematography and such better be damned good. I'm entirely ok with the cutscene being in-game & real-time graphics just has to be well written and well directed.

            Well even if they are skip-able, you might miss important information required to play the game. If I wanted to watch a movie, I'd just watch a movie. I don't want to watch a game try to be a movie badly. The only exception is games that are super high production cinematic, like Detroit or Until Dawn, which have the quality of an actual movie.