创建Android游戏几乎没有问题

时间:2012-01-08 21:03:25

标签: android

我在制作游戏时遇到了一些问题 首先,我正在制作塔防游戏,你可能知道,在塔防游戏中,游戏中的“怪兽”每次用炮塔挡住它们时都会改变路线。

现在,主要的想法是当你建造一个炮塔时,怪物会重新计算它们的路线。路线计算如下:在创建怪物之前,它获得一个获取方向,起点和终点的Trail对象。 Trail有一个X和Y,可以增加每个呼叫并检查炮塔是否位于该坐标中。如果找到炮塔,Trail会创建2个新的Trail对象,获取正确的对象并将其添加到自己,这将创建一个递归对象。 现在我不知道如何用Java编写所有这些内容,如果我使用这种方法,那将占用大量资源(我认为)。

我遇到的第二个问题是在SurfaceView上绘制布局。 我做了一个暂停按钮,当我点击它时,主线程(绘制游戏的那个)应该被停止。现在当线程停止时,暂停屏幕应该是可见的,但问题是,如果线程停止,则不会检测到屏幕上的任何触摸。所以我尝试创建一个RelativeLayout,向它添加Surface并使用2个按钮来扩展包含FrameLayout的pause.xml文件:Resume和Quit,当单击暂停按钮时,FrameLayout应该是可见的但是不起作用。 (我再次尝试使用RelativeLayour,但这也不起作用)

谢谢,如果你没有说明什么,请告诉我,我会尝试更容易理解。

编辑 - 代码

pause.xml

<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/pauseContent"
    android:background="#AA000000"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:visibility="invisible">
        <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true">
        <Button
            android:id="@+id/resume"
            android:layout_width="100px"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:text="Resume" />
        <Button
            android:id="@+id/quit"
            android:layout_width="100px"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_below="@id/resume"
            android:text="Quit" />
    </RelativeLayout>
</RelativeLayout>

GameActivity.java

public class GameActivity extends Activity {
    private RelativeLayout mainLayout;
    private GameView gameView;
    private RelativeLayout pauseContent;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        mainLayout=new RelativeLayout(this);
        LayoutInflater inflater=(LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
        View v=inflater.inflate(R.layout.pause, null);
        pauseContent=(RelativeLayout) v.findViewById(R.id.pauseContent);

        gameView=new GameView(GameActivity.this, getWindowManager().getDefaultDisplay().getWidth(), getWindowManager().getDefaultDisplay().getHeight());

        mainLayout.addView(gameView);
        mainLayout.addView(pauseContent, new ViewGroup.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));

        setContentView(mainLayout);
    }
}

(我删除了一些不需要显示的代码) 在我的游戏中,我创建了一个Button对象,其功能类似于Android UI按钮(带有点击监听器......),现在,我创建了暂停按钮,当他点击它时,暂停布局应该是可见的 - 这不是的工作原理。

0 个答案:

没有答案