我正在努力创造我的世界,我将所有的x coords放在一个数组中,并希望使用for循环将其绘制到屏幕上。它会保留27个值,但是,我的问题是我不知道我将填充其余的参数。
public void paint(Graphics2D g2d){
for(int i = 0; i < blockPlacementX; i++){
g2d.drawImage(getBlockIMG(), , ,null); //img, x, y, null
}
}
全班
package com.questkings.game;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Rectangle;
import javax.swing.ImageIcon;
public class MapLayout {
int[] blockPlacementX = {0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300,
330, 360, 390, 420, 450, 480, 510, 540, 570, 600, 630, 660, 690, 720,
750, 780, 810};
int[] blockPlacementY = { };
private Game game;
public MapLayout(Game game){
this.game=game;
}
//Map size 800(x), 400(y)
public void paint(Graphics2D g2d){
for(int i = 0; i < blockPlacementX; i++){
g2d.drawImage(getBlockIMG());
}
}
public Image getBlockIMG(){
ImageIcon ic = new ImageIcon("C:/Users/AncientPandas/Desktop/QuestKings/Misc/Images/Sprites/grassWall.png");
return ic.getImage();
}
public Rectangle getBoundsBlock(){
return new Rectangle(0, 345, 810, 1);
}
}
所以我尝试了,但它很快就吸引了它然后就消失了。有什么想法吗?
public void paint(Graphics2D g2d){
for(int i = 0; i < blockPlacementX[27]; i++){
g2d.drawImage(getBlockIMG(), blockPlacementX[0]++, blockPlacementY [0], null);
}
}
答案 0 :(得分:1)
如果我错了,请纠正我,但是您是否尝试使用预定义的坐标数组沿x轴平铺给定的一组(或单组)图像。
如果你有两个X和Y坐标数组(长度相等),那么通过数组的简单迭代就可以实现如下所示:
public void paint(Graphics2D g2d){
for(int i = 0; i < blockPlacementX.length; i++){
g2d.drawImage(getBlockIMG(), blockPlacementX[i], blockPlacementY[i], null);
}
}
如果您有一个Y坐标,只需将blockPlacementY[i]
替换为包含Y坐标的变量。
如果你有不同长度的X和Y坐标数组,你需要弄清楚如何根据一些规则集为每个图像分配坐标。