貝類因為壹些客觀原因喜歡吃海星和海膽,並把它們作為生存食物。首先,貝殼魚的牙齒非常堅硬,這使得貝殼魚不怕海星和海膽的皮,可以輕松的穿上。其次,在漫長的進化過程中,炮彈魚的眼睛和嘴巴之間的距離非常遠,這就保證了炮彈魚在捕食海星和海膽時不會被它們的上級刺和棘刺刺傷。
此外,還有主觀因素。貝類在獵捕壹些刺長超過30厘米的海膽時,有著巧妙的戰術。海膽除了常常埋在身體底部的嘴外,全身都長滿了刺。炮彈魚只能從嘴裏捕食海膽。炮彈魚會喝壹大口水,朝海膽吐口水,把海膽的身體吹走,露出海膽的嘴,然後攻擊海膽的嘴。或者說,炮彈魚先咬住海膽的壹根長刺,向上遊。遊了壹段距離後,它松手,走向海膽下沈的路徑。在海膽的下沈途中,它攻擊海膽底部的嘴,想用美味的食物回報膽汁。
在中國,炮彈魚大多生活在南海的珊瑚礁中,在那裏它們可以自由躺臥,遇到危險時也能迅速鉆入珊瑚礁洞中,等待危機過去。