处理Java-绘制eclipse或加载pic时出现问题
我正在为我的学校测试一个用Java处理的代码 我试图创建一个游戏,但在绘制日食或加载图片时遇到了问题。 我想这幅画或日食是在我的游戏板下画的。。我不知道怎么解决它 我有一个txt文件的游戏板(按级别)。 例如: 110000000 000000031 000000000 100000000 000000000 000000000 20000001 求你了,你能帮我吗 多谢各位处理Java-绘制eclipse或加载pic时出现问题,java,processing,loadimage,Java,Processing,Loadimage,我正在为我的学校测试一个用Java处理的代码 我试图创建一个游戏,但在绘制日食或加载图片时遇到了问题。 我想这幅画或日食是在我的游戏板下画的。。我不知道怎么解决它 我有一个txt文件的游戏板(按级别)。 例如: 110000000 000000031 000000000 100000000 000000000 000000000 20000001 求你了,你能帮我吗 多谢各位 int cols, rows, w, x, y,level; String lines[]; PImage flag;
int cols, rows, w, x, y,level;
String lines[];
PImage flag;
void setup() {
size(460,360);
cols = 9;
rows = 7;
w = 50 ;
x= 0;
y = 0;
level = 1;
lines = loadStrings("../../data/niveau"+level+".iwk");
flag = loadImage("../../data/flag.png");
ellipseMode(CORNER);
}
void draw() {
String lines[]= loadStrings("../../data/niveau"+level+".iwk");
loadCard(cols,rows,w,x,y,lines,flag);
}
void loadCard(int cols, int rows, int w, int x,int y,String lines[],PImage flag) {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
if(lines[i].charAt(j) == '1'){
fill(156, 158, 162);
}
else if(lines[i].charAt(j) == '2'){
fill(225, 169, 26) ;
ellipse(x,y,w/2,w/2);
}
else if(lines[i].charAt(j) == '3'){
image(flag,x,y,w/2,w/2);
}else {
fill(23, 159, 215);
}
rect(x, y, w, w);
x = x + w ;
}
y = y + w ;
x = 0 ;
}
}
int cols,rows,w,x,y,level;
字符串行[];
皮马吉旗;
无效设置(){
规模(460360);
cols=9;
行数=7;
w=50;
x=0;
y=0;
级别=1;
lines=loadStrings(“../../data/niveau”+level+“.iwk”);
flag=loadImage(“../../data/flag.png”);
ellipseMode(角落);
}
作废提款(){
字符串行[]=loadStrings(“../../data/niveau”+level+”.iwk”);
装载卡(列、行、w、x、y、行、标志);
}
无效加载卡(整数列、整数行、整数w、整数x、整数y、字符串行[]、PImage标志){
对于(int i=0;i
它确实是在游戏板下面画的
检查loadCard功能。首先绘制椭圆/图像,然后绘制一个具有相同x/y的矩形,因此位于其顶部
A稍微修改一下代码,它应该显示椭圆/图像
void loadCard(int cols, int rows, int w, int x,int y,String lines[],PImage flag) {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
//draw default so ellipse / img has a background
fill(23, 159, 215);
rect(x, y, w, w);
//draw other cases on top of default
if(lines[i].charAt(j) == '1'){
fill(156, 158, 162);
rect(x, y, w, w);
}
else if(lines[i].charAt(j) == '2'){
fill(225, 169, 26) ;
ellipse(x,y,w/2,w/2);
}
else if(lines[i].charAt(j) == '3'){
image(flag,x,y,w/2,w/2);
}
x = x + w ;
}
y = y + w ;
x = 0 ;
}
}
void loadCard(int cols、int rows、int w、int x、int y、字符串行[]、PImage标志){
对于(int i=0;i
既然您正在学习,请允许我给您两个提示:
loadStrings()只需在每个级别发生一次。您不应该将其放在draw()中,因为draw()在每一帧都被调用。它已经在安装程序中调用,现在还可以。最终,您可以将其放在一个单独的函数中,并在新级别开始时调用此函数
如果使用双for循环绘制游戏板,则可以使用迭代器(inti和intj)作为x/y变量。而不是
rect(x,y,w,w)代码>可以使用rect(i*w,j*w,w,w)代码>。这样,您将有更少的变量需要管理。欢迎使用堆栈溢出!请带上,四处看看,并通读,尤其是和。从第二个链接开始:“请求家庭作业帮助的问题必须包括到目前为止你为解决问题所做的工作的摘要,以及你在解决问题时遇到的困难的描述。”请注意,你问的问题很难理解。如何将txt文件转换为图像?