gpt4 book ai didi

java - 如何在 Java 中创建数组的简单图形显示?

转载 作者:行者123 更新时间:2023-12-01 04:52:18 24 4
gpt4 key购买 nike

在过去的几天里,我用 Java 编写了一个(拼凑得非常糟糕的)文本 RPG 游戏。世界中的定位几乎由一个简单的 100x100 2D 字符串数组控制。然后,当玩家实际出现在网格上时,我将字符串转换为实际对象。

我的想法是有一个图形显示,显示这个 100x100 网格,网格的每个部分都有一个图像,与数组中的内容相对应。

例如,如果 block [10][15]处的字符串为“rock”,则第10行第15列网格的图形显示部分将显示一 block 岩石的图片。

理想情况下,每次我在 do-while 循环中循环时,该图形都会刷新。奇怪的是,我想到的东西看起来与早期的口袋妖怪游戏非常相似。

如果我的描述措辞不当或者我的问题太含糊,我深表歉意。我的计算机类(class)只学了半个学期的java,所以我的知识仅限于一学期所学的基础知识。我确实喜欢在课外从事各种项目,比如我(自豪地)编写的文本国际象棋游戏。我更喜欢从头开始创建一切,这样我就可以在使用各种库之前学习基础知识。

有人可以为我指明我正在寻找的内容的正确方向,或者提供更好的方法来完成此显示吗?

提前非常感谢您。请告诉我对我的代码的引用是否可以更好地帮助回答我的问题。

最佳答案

首先,您可以使用枚举而不是上面 Jack 提到的字符串。例如

私有(private)枚举对象{ 岩石(1)、金币(8)、医疗(45)...等等 }

在数组中,您可以将这些对象存储为数字而不是字符串。

例如:

     boolean stopFlag=false;    
do{
//check each element of your world array with the enum and draw it
for(int i=0;i<yourObjectsArray.length;i++)
{
for(int j=0;j<yourObjectsArray[i].length;j++){
switch(yourObjectsArray[i][j])
{
case Objects.Rock: drawRock(i,j);
break;
case Objects.Coin: drawCoin(i,j);
break;
//and so on....
}
}
}
//you can also put this into a separate function as drawWorld() and pass the objects.

//Key press checking logic here. If user presses exit key [esc] then you set the stopFlag as true
if(keypress==KEY_ESC){ stopFlag=true;}
}while(!stopFlag);

绘制岩石的示例:

private void drawRock(int i,int j){
//i and j are the cols and row values so you need to resolve them to coordinates.
//I am assuming u have a 800*600 screen and you mentioned that your world is 100x100 array. Then each of your object is 8*6 units in size so
xCoord=i*8;
yCoord=j*6;
//So if you have to draw a rock on [10][15] it will resolve as
//xCoord=10*8-> 80
//yCoord=15*6-> 90 so it will draw your rock in (80,90) on the screen

//Now you can either open the rock image from your disk now or u maintain one instance of rock at the beginning of the program so that you can use the same image later rather than opening it everytime you encounter a new Rock object in your array.For now I will open it here.

String path = "C:\\YourGameDirectory\\rock.jpg";
URL url = new File(path).toURI().toURL();
BufferedImage rockImg = ImageIO.read(url);

//draw it to the screen now if you have the graphics instance.
yourUIPanel.getGraphics().drawImage(rockImg,xCoord,yCoord,yourUIPanel);

// You may find many resources that teach you how to draw an image on the screen in Java. You may repeat the same for all the objects.

}

希望以上代码对您有所帮助。如果没有,那是我的错。

您可以尝试this入门教程系列。虽然它是用 C 语言编写的,但它的概念可以帮助您实现上面提到的目标。

关于java - 如何在 Java 中创建数组的简单图形显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14765909/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com