<< RealTime3D`

a =  .3;

u[t_, x_] :=  
      Which[t  <  a, 
        Which[x  <  -a - t, 0, x < -a + t, ((x + a + t)/2), 
          x < a - t, t, x < a + t, ((-x + a + t)/2), True, 0], True, 
        Which[x  <  -a - t, 0, x < a - t, ((x + a + t)/2), 
          x < -a + t, a, x < a + t, ((-x + a + t)/2), True, 
          0]]

Plot3D[u[t, x], {x, -1, 1}, {t, 0, 1.3}, 
      BoxRatios  -> {1, 1,  .2}, Boxed -> False, 
      Axes -> False, Mesh -> False, 
      PlotPoints -> 350]

\(δt\  = \  .025; \ \(Plot[u[#, x], {x, \(-1\), 1}, 
          PlotRange\  -> {\(- .1\),  .4}, 
          PlotStyle\  -> \ {Thickness[ .004], Hue[ .02]}] &\)\  /@ 
\ 
      Range[0, 1.3, δt];\)