我正在制作一个游戏,我有一个我的角色的精灵表,但显然我只是想一次绘制一帧我的角色动画。是否可以使用image()函数?
这是代码(这是针对特定的人帮助我)
'PImage spritesheet;
int DIM_X = 13;
int DIM_Y = 1;
PImage[] sprites = new PImage[DIM_X*DIM_Y];
void setup() {
size(300, 300);
imageMode(CENTER);
spritesheet = loadImage("PlayerSprites.png");
int W = spritesheet.width/DIM_X;
int H = spritesheet.height/DIM_Y;
for (int i=0; i<sprites.length; i++) {
int x = i%DIM_X*W;
int y = i/DIM_Y*H;
sprites[i] = spritesheet.get(x, y, W, H);
}
frameRate(10);
}
void draw() {
background(0,0,0);
image(sprites[frameCount%sprites.length], width/2, height/2);
}'
答案 0 :(得分:3)
以下代码将满足您的需求:
PImage spritesheet;
int DIM_X = 6;
int DIM_Y = 5;
PImage[] sprites = new PImage[DIM_X*DIM_Y];
void setup() {
spritesheet = loadImage("http://payload23.cargocollective.com/1/6/200359/2773164/player_7.png");
size(300, 300);
imageMode(CENTER);
int W = spritesheet.width/DIM_X;
int H = spritesheet.height/DIM_Y;
for (int i=0; i<sprites.length; i++) {
int x = i%DIM_X*W;
int y = i/DIM_Y*H;
sprites[i] = spritesheet.get(x, y, W, H);
}
frameRate(10);
}
void draw() {
background(0,0,0);
image(sprites[frameCount%sprites.length], width/2, height/2);
}
您需要记住一些事项:
DIM_X
和DIM_Y
表示沿x和y的精灵数量
在你的精灵表上。所以你需要改变这些数字
相应地。PImage
正在从互联网上获取,显然,你
需要更改String
的{{1}}。loadImage()
更改为int y
= i/DIM_Y*H;
,以反映行数不会更改。