Graphics 绘制的正方形在指定的颜色之间不断闪烁 我对游戏玩家1.4很陌生,但我对Python和C++有一定的经验。我创建了一个1到5之间的随机整数矩阵,表示地图上每栋建筑的层数。我想用这个画一组10x10的正方形,浅灰色的正方形代表更高的建筑。不幸的是,我不能让方块保持相同的颜色。它们在颜色之间不断闪烁
我如何让它们停止闪烁并适当地表示它们的相关值 这是我的剧本:Graphics 绘制的正方形在指定的颜色之间不断闪烁 我对游戏玩家1.4很陌生,但我对Python和C++有一定的经验。我创建了一个1到5之间的随机整数矩阵,表示地图上每栋建筑的层数。我想用这个画一组10x10的正方形,浅灰色的正方形代表更高的建筑。不幸的是,我不能让方块保持相同的颜色。它们在颜色之间不断闪烁,graphics,game-maker,gml,game-maker-language,game-maker-studio-1.4,Graphics,Game Maker,Gml,Game Maker Language,Game Maker Studio 1.4,我如何让它们停止闪烁并适当地表示它们的相关值 这是我的剧本: // Random 2D Map Height Generator /* Generates a matrix which is used for determining the amount of stories per building in the game. Then draws squares of different colors to represent the number of stories of ea
// Random 2D Map Height Generator
/*
Generates a matrix which is used for determining
the amount of stories per building in the game.
Then draws squares of different colors to represent
the number of stories of each building.
*/
ct = irandom(1);
// create array
for (i = 0; i <= global.height; i += 1) {
for (j = 0; j <= global.width; j += 1) {
mapArray[i, j] = irandom_range(1, 5);
if (ct % 2 != 0 && mapArray[i, j] < 5) {
mapArray[i, j] += 1;
}
ct += 1;
}
}
// make colors
one = make_color_rgb(0, 0, 0);
two = make_color_rgb(51, 51, 51);
three = make_color_rgb(102, 102, 102);
four = make_color_rgb(153, 153, 153);
five = make_color_rgb(204, 204, 204);
// initialize coordinates
ex = 300;
wy = 100;
// count columns
// draw map
for (i = 0; i <= global.height; i += 1) {
for (j = 0; j <= global.width; j += 1) {
ex2 = ex + 30;
wy2 = wy + 30;
switch (mapArray[i, j])
{
case 1:
draw_set_color(one);
break;
case 2:
draw_set_color(two);
break;
case 3:
draw_set_color(three);
break;
case 4:
draw_set_color(four);
break;
case 5:
draw_set_color(five);
break;
default:
draw_text(200, 200,
"ERROR: scr_mapGeneration, case not met");
break;
}
draw_rectangle(ex, wy, ex2, wy2, false);
ex += 33;
if (j == global.width) {
wy += 33;
ex = 300;
}
}
}
我调用randomize()代码>在我初始房间的创建代码中。问题发生在另一个房间
这是一张生成的图片,显然这张图片没有闪烁的方块。
如果您需要更多信息,请告诉我。问题是我在抽签活动中包含了所有文本。因此,阵列不断被重新制作。解决方案是分离数组生成代码,并在不同的事件下执行它。我为此使用了创建事件
我会提供一个详细的例子,但考虑到GameMaker程序的性质,这是很困难的,而且解决方案应该是不言自明的。问题是,我将所有文本作为绘图活动的一部分包含在内。因此,阵列不断被重新制作。解决方案是分离数组生成代码,并在不同的事件下执行它。我为此使用了创建事件
我会提供一个详细的例子,但鉴于GameMaker程序的性质,这是很困难的,而且解决方案应该是不言自明的。颜色不断地被赋予新的随机值,因为绘制函数被称为每帧
randomize()
您应该在创建事件中调用脚本一次,而不是绘制矩形,您将它们存储在ds\U网格中()
在绘图功能中,您只需从网格中绘制保存的值 由于绘制函数被称为“每帧”,因此颜色不断地被赋予新的随机值
randomize()
您应该在创建事件中调用脚本一次,而不是绘制矩形,您将它们存储在ds\U网格中()
在绘图功能中,您只需从网格中绘制保存的值 我的猜测是,脚本经常执行。似乎就是这样。我不知道如何让它只执行一次。gamemaker有没有办法给随机生成器添加种子?如果是这样,您可以在调用irandom()
和irandom\u range()
函数之前,在脚本的开头使用相同的值对其进行种子设定。@user1118321我会看看是否能找到关于它的任何信息。我猜脚本经常执行。似乎就是这样。我不知道如何让它只执行一次。gamemaker有没有办法给随机生成器添加种子?如果是这样的话,在调用irandom()
和irandom\u range()
函数之前,可以在脚本的开头使用相同的值对其进行种子设定。@user1118321我会看看是否能找到关于它的任何信息。
script_execute(scr_mapGeneration);