gpt4 book ai didi

java - 在 for 循环中绘制图像 x 次

转载 作者:行者123 更新时间:2023-12-01 12:13:20 25 4
gpt4 key购买 nike

我正在努力创造我的世界,我将所有 x 坐标都放在一个数组中,并且想使用 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);
}
}

最佳答案

如果我错了,请纠正我,但您是否尝试使用预定义的坐标数组沿 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 坐标数组的长度不同,则需要弄清楚如何根据某些规则集为每个图像分配坐标。

关于java - 在 for 循环中绘制图像 x 次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27154121/

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