小游戏源码疑惑几个细节

图片说明
游戏源码中一共4个类,有小鸟类,柱子类,游戏类(主程序),地面类,其中柱子类中给出的柱子Y坐标是y = (int)(Math.random()*218)+132,这样的话Y坐标最小为132,那么柱子的最上端就会有一段间隙,但是,实际过程中,柱子最上端一直都没有间隙。柱子类中还有一个方法:public void run(){
x--;
if(x<= width/2){
x = distance*2 - width/2;
y = (int)(Math.random()*218)+132;
}
},其中X坐标为什么要这样定义?
另外一个问题就是在游戏类中在调用g.drawImage(column1.image,column1.x-column1.width/2, column1.y-column1.height/2,null);这个方法时,里面的参数中X.Y坐标相减怎么理解?

https://blog.csdn.net/wangqing84411433/article/details/53034071