Making pipes
A pipe is divided into two parts, lower and upper, with a gap in between for player to pass through. Each part, in turn, consists of variable-length body and the pipe cap, or pcap—a fixed-size thickening at the end of the pipe facing the gap. We are going to use the following images to draw pipes:

Images for pipes
If the preceding explanation doesn't ring the bell, see the first illustration in this chapter and you'll immediately understand what this means.
Again, the layout in the kivybird.kv
file provides a convenient starting point:
<Pipe>: canvas: Rectangle: pos: (self.x + 4, self.FLOOR) size: (56, self.lower_len) texture: self.tx_pipe tex_coords: self.lower_coords Rectangle: pos: (self.x, self.FLOOR + self.lower_len) size: (64, self.PCAP_HEIGHT) texture: self.tx_pcap Rectangle: pos: (self.x + 4, self.upper_y) size: (56, self.upper_len...