我目前正在为Android开发一个简单的游戏,其中主要操作发生在我的类GameView上,这只是View的扩展.
我想在GameView的左上角添加一些显示分数的文字,想知道实现这个的最佳方法吗?
提前致谢
马特德鲁里
我刚刚开始在Android中开发,我正在尝试制作一个非常基本的游戏,你必须在屏幕底部移动一个蝙蝠并捕捉物品,同时避免炸弹.
我遇到的问题是,当您将手指放在屏幕的左侧或右侧时,我希望球棒沿着屏幕底部移动.
目前,当用户触摸屏幕时,我可以让蝙蝠移动几个像素,但是在用户将手指从屏幕上移开之前我无法继续移动.
到目前为止,这是我的(非常)基本代码:
package com.mattdrewery.supercatch;
import android.view.View;
import android.view.MotionEvent;
import android.content.Context;
import android.graphics.Canvas;
public class GameView extends View
{
private Catcher catcher;
public GameView(Context context)
{
super(context);
setFocusable(true);
// Create the catcher
catcher = new Catcher(context, R.drawable.catcher, 240, 250);
}
@Override
protected void onDraw(Canvas canvas)
{
// Draw the catcher to the canvas
canvas.drawBitmap(catcher.getImage(), catcher.getPosX(), catcher.getPosY(), null);
// Redraw the screen
invalidate();
}
@Override
public boolean onTouchEvent(MotionEvent event)
{
// Get the action from the touch screen
int eventAction …Run Code Online (Sandbox Code Playgroud) 这是我之前提出的问题的后续问题.基本上我有一个游戏,其中主要动作发生在画布上,该画布位于从View扩展的自定义类中.
我将分数保存在字符串中,我试图将其绘制到屏幕的左上角.
在我的onDraw()方法的底部,我有以下代码行:
canvas.drawText(score, 5, 5, null);
Run Code Online (Sandbox Code Playgroud)
当我尝试运行游戏时,log cat会给我以下错误:
03-02 22:30:29.955: ERROR/AndroidRuntime(8140): FATAL EXCEPTION: main
03-02 22:30:29.955: ERROR/AndroidRuntime(8140): java.lang.NullPointerException
03-02 22:30:29.955: ERROR/AndroidRuntime(8140): at android.graphics.Canvas.drawText(Native Method)
03-02 22:30:29.955: ERROR/AndroidRuntime(8140): at com.mattdrewery.supercatch.GameView.onDraw(GameView.java:143)
03-02 22:30:29.955: ERROR/AndroidRuntime(8140): at android.view.View.draw(View.java:6880)
03-02 22:30:29.955: ERROR/AndroidRuntime(8140): at android.view.ViewGroup.drawChild(ViewGroup.java:1646)
03-02 22:30:29.955: ERROR/AndroidRuntime(8140): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
03-02 22:30:29.955: ERROR/AndroidRuntime(8140): at android.view.View.draw(View.java:6883)
03-02 22:30:29.955: ERROR/AndroidRuntime(8140): at android.widget.FrameLayout.draw(FrameLayout.java:357)
03-02 22:30:29.955: ERROR/AndroidRuntime(8140): at android.view.ViewGroup.drawChild(ViewGroup.java:1646)
03-02 22:30:29.955: ERROR/AndroidRuntime(8140): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
03-02 22:30:29.955: ERROR/AndroidRuntime(8140): at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
03-02 22:30:29.955: ERROR/AndroidRuntime(8140): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
03-02 22:30:29.955: ERROR/AndroidRuntime(8140): at android.view.View.draw(View.java:6883) …Run Code Online (Sandbox Code Playgroud) android ×3