If I understand what you want to do correctly, I'd do it like this:
Type tankT ; Put any other tank fields you require here! Field x#[4] ; Arrays to store tank positions: Field y#[4] ; x[0],y[0],z[0] is tank's current position, Field z#[4] ; x[1],y[1],z[1] is tank's previous postion etc. End Type my_tank.tankT = New tankT position_tank(my_tank,1,2,3) ; Set tanks initial position. While Not KeyHit(1) Cls If KeyHit(57) Then position_tank(my_tank,Rand(1,100),Rand(1,100),Rand(1,100)) Text 10,10," Current pos: x=" + my_tank\x[0] + " y=" + my_tank\y[0] + " z=" + my_tank\z[0] Text 10,30,"Previous pos1: x=" + my_tank\x[1] + " y=" + my_tank\y[1] + " z=" + my_tank\z[1] Text 10,50,"Previous pos2: x=" + my_tank\x[2] + " y=" + my_tank\y[2] + " z=" + my_tank\z[2] Text 10,70,"Previous pos3: x=" + my_tank\x[3] + " y=" + my_tank\y[3] + " z=" + my_tank\z[3] Text 10,90,"Previous pos4: x=" + my_tank\x[4] + " y=" + my_tank\y[4] + " z=" + my_tank\z[4] Text 10,120,"Presss SPACEBAR to move tank to new position" Flip Wend End Function position_tank(tank.tankT, x#, y#, z#) For i = 4 To 1 Step -1 tank\x[i] = tank\x[i-1] tank\y[i] = tank\y[i-1] tank\z[i] = tank\z[i-1] Next tank\x[0] = x tank\y[0] = y tank\z[0] = z End Function