loop

Hi, I'm wondering how can I make a part in a code repeat. For my project, I'm making a robot. Just a simple IR command car. It can go up, down, left, right, spin left, and spin right. I've added leds as well. 2 leds for headlights, 2 leds for stop, 2 leds for reverse, 1 led for left, another for right. I want to make the left and right ones blink continuous. I took a part of code from the example blink sketch but when I put it to play in this project, all it does is turn on then off. No repeats. How can I make it blink non stop until another command is received?

WHOLE CODE:

#include <IRremote.h>
#include <IRremoteInt.h>

#include <IRremote.h>
#include <IRremoteInt.h>

// Robot With IR remote
// by Neil Hendrick
//

//this imports the IR Library (must be present in libraries folder)
int dir_b = 13; // Direction pin for motor B is Digital 12
int pwm_b = 11; // Speed pin for motor B is Digital 9 (PWM)
int dir_a = 12; // Direction pin for motor A is Digital 13
int pwm_a = 3; // Speed pin for motor A is Digital 10 (PWM)
int dir = 0;
int RECV_PIN = 8;// IR receiver
IRrecv irrecv(RECV_PIN);
decode_results results;
  
void setup()
{
  pinMode(dir_b, OUTPUT);
  pinMode(dir_a, OUTPUT);
  pinMode(pwm_b, OUTPUT);
  pinMode(pwm_a, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(9, OUTPUT);
    
Serial.begin(9600); //begin serial connection, prints output to your PD
irrecv.enableIRIn(); // Start the receiver

}

void loop(){ //start loop
    if (irrecv.decode(&results)) {
    if (results.value == 0xBEEC847B) { //UP forward
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(10, LOW);
digitalWrite(dir_b, 1); // set direction
digitalWrite(dir_a, 1); // set direction
analogWrite(pwm_b, 255); // set speed (PWM)
analogWrite(pwm_a, 255); // set speed (PWM)
     }// close UP 
     else if (results.value == 0xBEECA45B) { //DOWN backward
digitalWrite(4, LOW);
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(10, LOW);
digitalWrite(dir_b, 0); // set direction
digitalWrite(dir_a, 0); // set direction
analogWrite(pwm_b, 255); // set speed (PWM)
analogWrite(pwm_a, 255); // set speed (PWM)
     }
     else if (results.value == 0xBEEC44BB) { //LEFT
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(10, LOW);  
digitalWrite(dir_b, 1); // set direction
digitalWrite(dir_a, 1); // set direction
analogWrite(pwm_b, 255); // set speed (PWM)
analogWrite(pwm_a, 128); // set speed (PWM)
  digitalWrite(9, HIGH);   // set the LED on
  delay(500);         
  digitalWrite(9, LOW);    // set the LED off
  delay(500);
     }
     else if (results.value == 0xBEEC24DB) { //RIGHT
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(10, LOW);      
digitalWrite(dir_b, 1); // set direction
digitalWrite(dir_a, 1); // set direction
analogWrite(pwm_b, 128); // set speed (PWM)
analogWrite(pwm_a, 255); // set speed (PWM)
  digitalWrite(12, HIGH);   // set the LED on
  delay(500);         
  digitalWrite(12, LOW);    // set the LED off
  delay(500);
     }
     else if (results.value == 0xBEECC43B) { //STOP *
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(10, HIGH);
analogWrite(pwm_b, 0); // set speed (PWM)
analogWrite(pwm_a, 0); // set speed (PWM)
     }
     else if (results.value == 0x57432CD3) { // Spin Left RW
     digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(10, LOW);
digitalWrite(dir_b, 1); // set direction
digitalWrite(dir_a, 0); // set direction
analogWrite(pwm_b, 255); // set speed (PWM)
analogWrite(pwm_a, 255); // set speed (PWM)
     }
     else if (results.value == 0xBEEC2AD5) { //Spin Right FF
     digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, HIGH);
digitalWrite(7, LOW);
digitalWrite(10, LOW);
digitalWrite(dir_b, 0); // set direction
digitalWrite(dir_a, 1); // set direction
analogWrite(pwm_a, 255); // set speed (PWM)
analogWrite(pwm_b, 255); // set speed (PWM)
     }
     else if (results.value == 0xBEECCA35) { //Spin Right FF
     digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, HIGH);
digitalWrite(10, LOW);
digitalWrite(dir_b, 0); // set direction
digitalWrite(dir_a, 1); // set direction
analogWrite(pwm_b, 255); // set speed (PWM)
analogWrite(pwm_a, 255); // set speed (PWM)
     }
    Serial.println(results.value, HEX); //sends the IR code to computer so you can see what codes you are sending
    irrecv.resume(); // Receive the next value  
    
    }//close first IF "if (irrecv.decode(&results)){"
} //close loop

Ass you can see, I've added

  digitalWrite(12, HIGH);   // set the LED on
  delay(500);         
  digitalWrite(12, LOW);    // set the LED off
  delay(500);

but this doesn't work as it only turns on the led then off and nothing.

Your code only does stuff when a new button code arrives. Look at the BlinkWithoutDelay example to see how to blink a light without using the delay() function which monopolizes the processor. Then you'll want to have some way of remembering if the Left or Right blinker is supposed to be on. In your blink code you would blink whichever light is supposed to be blinking and turn the other lights off.