Java 方法:“;getMap";及;“地图”;不';行不通
我是一个非常初级的程序员,所以我遵循youtube教程,该教程向我展示了如何构建一个简单的snake应用程序。youtube教程上的男人比我得到的版本更旧。他使用的是Java 方法:“;getMap";及;“地图”;不';行不通,java,android,android-studio,youtube,android-studio-2.2,Java,Android,Android Studio,Youtube,Android Studio 2.2,我是一个非常初级的程序员,所以我遵循youtube教程,该教程向我展示了如何构建一个简单的snake应用程序。youtube教程上的男人比我得到的版本更旧。他使用的是AndroidStudioversion2.1.2,我使用的是AndroidStudioversion2.2和java语言 我的问题是,他使用命令getMap和map,并且它可以工作。当我这样做时,它不起作用。我的问题是我必须在>方法“getMap”和“map”中替换的问题 我所关注的youtube教程: 12:00他第一次使用这个
AndroidStudio
version2.1.2,我使用的是AndroidStudio
version2.2和java语言
我的问题是,他使用命令getMap
和map
,并且它可以工作。当我这样做时,它不起作用。我的问题是我必须在>方法“getMap”和“map”中替换的问题
我所关注的youtube教程:
12:00他第一次使用这个命令
游戏引擎
代码的问题在于,您使用的是圆括号
()
,而它必须使用方括号[]
,因为您要声明二维数组。替换它们,如:
public TileType[][] getMap() {
TileType[][] map = new TileType[GameWidth][Gameheight];
for (int x = 0; x < GameWidth; x++) {
for (int y = 0; y < Gameheight; y++) {
map[x][y] = TileType.Nothing;
}
}
for (Coordinate wall: walls) {
map[wall.getX()][wall.getY()] = TileType.Wall;
}
return map;
}
public TileType[]getMap(){
TileType[]map=新TileType[GameWidth][Gameheight];
对于(intx=0;x
PS:你真的需要从基础开始。发布你拥有的任何代码。对不起,链接可能是重复的是,我不知道如何发布代码。当你发送电子邮件时,我会将其发送给你,只需编辑你的问题并复制粘贴你在android studio中编写的代码。简单的
public void setSnakeViewMap(TileType[][]map)[this.snakeViewMap=map;]
我的代码中的所有内容都有效,除了这个public void您必须替换private TileType snakeViewMap()代码>带有私有TileType snakeViewMap[]代码>也是。
`package pelgrom.laurens.snake101.views;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;
import pelgrom.laurens.snake101.enums.TileType;
/**
* Created by Laptop on 23-1-2017.
*/
public class SnakeView extends View {
private Paint mPaint = new Paint();
private TileType snakeViewMap()();
public SnakeView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public void setSnakeViewMap(TileType()() map )( this.snakeViewMap = map; )
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
if( snakeViewMap != null ){
float tileSizeX = canvas.getWidth() / snakeViewMap.length;
float tileSizeY = canvas.getHeight() / snakeViewMap.length;
float circleSize = Math.min(tileSizeX, tileSizeY) / 2;
for (int x = 0; x < snakeViewMap.lenght; x++) {
for (int y = 0; y < snakeViewMap(x). lenght; y++) {
switch (snakeViewMap(x)) {
case Nothing:
mPaint.setColor(Color.WHITE);
break;
case Wall:
mPaint.setColor(Color.GREEN);
break;
case SnakeHead:
mPaint.setColor(Color.RED);
break;
case SnakeTail:
mPaint.setColor(Color.GREEN);
break;
case Apple:
mPaint.setColor(Color.RED);
break;
}
canvas.drawCircle(x * tileSizeX + tileSizeX / 2f + circleSize / 2, y * tileSizeY + tileSizeY / 2f + circleSize / 2, circleSize, mPaint);
}
}
}
}
}
`
`package pelgrom.laurens.snake101;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import pelgrom.laurens.snake101.engine.GameEngine;
import pelgrom.laurens.snake101.views.SnakeView;
public class Activity extends AppCompatActivity {
private GameEngine gameEngine;
private SnakeView snakeView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout);
gameEngine = new GameEngine();
gameEngine.initGame();
snakeView = (SnakeView)findViewById(R.id.snakeView);
snakeView.setSnakeViewMap(gameEngine.getMapAsync());
snakeView.invalidate();
}
}
`
public TileType[][] getMap() {
TileType[][] map = new TileType[GameWidth][Gameheight];
for (int x = 0; x < GameWidth; x++) {
for (int y = 0; y < Gameheight; y++) {
map[x][y] = TileType.Nothing;
}
}
for (Coordinate wall: walls) {
map[wall.getX()][wall.getY()] = TileType.Wall;
}
return map;
}