你的问题对于堆栈溢出来说太笼统了,没有人会为你做你的项目。假设你有基本的编程经验,如果没有得到书籍并首先学习。
假设您已经因为您的标签而选择了 Android,并假设 2d 游戏更容易。
预先请求:如果您还没有安装 java+eclipse+android sdk。创建一个新项目并使用月球着陆器示例,确保它在您的手机或模拟器上运行。
起始示例:月球着陆器有一个游戏循环,一个单独的线程不断重绘整个屏幕,它通过不断调用 doDraw 函数来做到这一点。然后,您应该使用画布来绘制线条、圆圈、框、颜色和位图,以类似于您的游戏。(canvas.draw ....) Lunar Landar 不使用 openGL,所以它更慢但更容易使用。
剥离样本:您可能不想要关键事件或月球飞船!删除 onDraw 函数中的所有内容 删除 onKeyUp、onKeyDown 删除任何发生的错误 新建一个
@Override
public boolean onTouchEvent(MotionEvent event){
return false;
}
运行它你应该得到一个空白屏幕,这是你开始制作游戏的画布......你提到了球,把它分解成球是什么:位置和方向,为球创建变量 x,y direction_x 和 direction_y触摸事件将要更改球的方向,绘图事件将要移动球(将方向 x,y 添加到球 x,y)并绘制球(canvas.drawCircle(x,y,radius,new Paint())) 想要更多的球搜索和阅读数组。最重要的是开始简单和实验。
2 次碰撞
碰撞可以在 dodraw 函数中完成并分解为:移动一个对象,检查该对象是否已经通过了它应该去的地方,如果是,在任何人注意到之前将其移回......有许多不同的碰撞检测技术:
如果你的墙都是水平和垂直的(最简单的),那么盒子碰撞会检查球的新 x,y+-radius 对墙 x,y,width 和 height 这是一个很大的 if 语句,谷歌有数十亿个例子。
如果你的墙壁是有角度的,那么你需要线碰撞检测,你基本上有一条线(矢量),你的球正朝着你的墙的一个矢量创建一个函数来检查两条线在哪里碰撞并检查该点是否都在墙上并且在你的球的半径内(谷歌线交叉功能)
或者您可以使用颜色选择,例如,您在知道所有墙壁都是红色的情况下绘制场景,然后检查新球 x,y 所在的点是否为红色并知道您击中了
祝你好运,希望这对你有所帮助,保持简单,反复试验,希望这能让你开始,你的下一个问题可以更具体。