为什么我的保安(S)和唐纳德(D)处于相同的位置。
地图应该是这样打印出来的
[D----]
[- - - - -]
[- - - - -]
[--S-]
[--P--]
但它却像这样出现
[S----]
[- - - - -]
[- - - - -]
[- - - - -]
[--P--]
public class Main {
public static void main(String[] args) {
Map m = new Map();
Player p = new Player();
Donald d = new Donald();
Security s = new Security();
while(true) {
m.updateMap(p.row, p.col, p.character);
m.printMap();
m.updateMap(p.row, p.col, '-');
m.updateMap(d.row, d.col, d.character);
m.updateMap(s.row, s.col, s.character);
p.move();
}
}
}
public class Map {
char map[][];
Map() {
map = new char[5][5];
for(int i = 0; i<5; i++) {
for(int j = 0; j<5; j++) {
map[i][j] = '-';
}
}
}
void updateMap(int row, int col, char data) {
map[row][col] = data;
}
//prints map on the screen.
void printMap() {
for(int i = 0; i<5; i++) {
for (int j = 0; j<5; j++) {
System.out.print(map[i][j] + " ");
}
System.out.println();
}
}
}
public abstract class Position {
int row;
int col;
char character;
abstract void move();
}
public class Donald extends Position {
//Doanld Trump's Position on the Array is [0,0]
Donald() {
int row = 0;
int col = 0;
character = 'D';
}
void move() {
}
}
所以正如你在这里看到的,我把安全位置设为[3,2],但出于某种原因,它没有将其识别为[3,2],并将安全位置设为[0,0],唐纳德就坐在这里。
public class Security extends Position {
Security() {
int row = 3;
int col = 2;
character = 'S';
}
void move() {
}
}
import java.util.Scanner;
public class Player extends Position{
//players position starts at [4,2] on the array
Player() {
row = 4;
col = 2;
character = 'P';
}
void move() {
Scanner scanner = new Scanner(System.in);
boolean move = false;
while(!move) {
System.out.println("up: w | down: s | left: a | right: d | quit: q");
char userInput = scanner.next().toLowerCase().charAt(0);
//moving forward
if(userInput == 'w') {
if(row>0) {
row--;
move = true;
}
}
//moving left
if(userInput == 'a') {
if(col>0) {
col--;
move=true;
}
}
//moving right
if(userInput == 'd') {
if(col<4) {
col++;
move=true;
}
}
//moving down
if(userInput == 's') {
if(row<8) {
row++;
move=true;
}
}
if(move == false) {
System.out.println("You can't move here");
}
}
}
}
类安全性从位置继承属性行和列,但在构造函数中,您要执行以下操作:
Security() {
int row = 3; //you are basically creating a new variable called row
int col = 2; //which is NOT the attribute (that is this.row)
character = 'S';
}
在构造函数之后,Security
对象保留在s.row
和s.col
等于0。
你应该这么做
Security() {
this.row = 3; //you can also do row = 3;
this.col = 2; //and the compiler will understand
this.character = 'S';
}
你在Donald
中犯了同样的错误:你告诉Donald
就位(0,0),但然后你告诉Security
就位(0,0),这就是为什么Security
出现但Donald
没有出现,他被Security
覆盖。
Player
位于第4行和第2列,与您设置的一样。
问题内容: 我正在制作一个2D游戏,其中包括一架与飞船通过槽式导弹作战的飞机,我希望飞船根据玩家的位置旋转,以便它们始终以“头部”面对玩家。播放器可以在y和x方向上自由移动。玩家和太空飞船具有一个Vector2 pos变量,该变量对应于它们的实际位置。任何帮助,将不胜感激。 这是我(现在正在工作)的代码: 敌方飞船旋转,但它们并不总是面对玩家: 问题答案: @dwn的答案在数学上是正确的,但是当您
https://drive . Google . com/file/d/1 UC 2s ys 7 zfd 686 ukqlyamedzkefehzcar/view?usp =共享 正如你在视频中看到的那样,当我试图从山上跳下来时,玩家只是穿过地形,好像没有地形一样,但我仍然可以正常移动。我注意到,每当我离开地面时快速移动时,问题就出现了,就像我第一次开始这个关卡时,我跳得很慢,然后返回地面,每当我
我正在尝试为我为MC 1.10创建的mod更改播放器的模型。我已经尝试了几件事,但都没有成功。我已经制作了一个模型和渲染器,但无法让它替换播放器。这是我尝试的(自定义模型称为悬停爪(长故事)): 也: 我浏览了整个网站,以及minecraft和forge论坛。 请帮忙! 编辑:我已经查看了IChun的变形模型的源代码,但我找不到它是如何改变玩家模型的。如果你回答这个问题,说我应该看看这个mod,那
我试图确定数组中的位置。我真的不确定如何处理这种情况
我知道你可以得到损坏的原因 在实体损坏事件中,但是我还没有找到返回造成损坏的实体的方法。我需要找出这一点,这样我就可以检查玩家的库存中是否有某个物品。
所以现在当玩家进入一个位置(pos),比如A5,如果船不在那里,它会用空字符串替换板数组索引。但是如果船在那里,我希望它用hitShip字符串替换它。 开关盒在所有坐标(A1-J10)上继续 ship1的值为“A6” 我有这个代码来打印命中/未命中消息,这取决于玩家是否命中了一艘船,但我不确定如何使用它来用hitShip变量替换棋盘数组的索引。