Zhanghua
Member
HAHAHAHAHAHAHA!!!New Beta version 9 is out: https://help.yoyogames.com/hc/en-us...se-Notes-IDE-v23-1-1-157-Runtime-v23-1-1-146-
Full, open to all, beta access news tomorrow. Thanks!
HAHAHAHAHAHAHA!!!New Beta version 9 is out: https://help.yoyogames.com/hc/en-us...se-Notes-IDE-v23-1-1-157-Runtime-v23-1-1-146-
Full, open to all, beta access news tomorrow. Thanks!
I would strongly advise against an open beta given what I just saw in Beta 9.New Beta version 9 is out: https://help.yoyogames.com/hc/en-us...se-Notes-IDE-v23-1-1-157-Runtime-v23-1-1-146-
Full, open to all, beta access news tomorrow. Thanks!
That's IT???? That's all you have to say???? After working 12 hours a day for the last month and a half to re-write everything, not to mention the massive amount of new content that's in there, plus all the new features like the glossary, the improved search system, the improved table of contents, and all the general overall UX improvements, and that's all you have to say???
- Only 6 sections out of 23 remain in the Manual's GML function listings category
... aaaaand an open beta release of a free update is a bad thing because...?LoL and I just started with the latest version. Over for me.
I've reported the OOP problem, and there's a sister problem that had been on there since the last beta but still isn't resolved.Thanks for your feedback. We will push back the open release if we feel we have to. The first point, I hope those issues are fully detailed and reported in the beta forums. The second point, we are aware and it has been called out in the release notes.
I see that point now, I thought the "user guide" referred to the Manual (it's actually a section in the Manual).The second point, we are aware and it has been called out in the release notes.
I'm sorry, but Pareto's Law is a cruel beast. Of all the times I use the Manual these days, at least 80% of the time I'm using and linking to a particular 20% part of the Manual called "GameMaker Language Reference", and I think this use case is not unique. When the missing material gets concentrated in that area, people like me are put in a poor position to give real feedback, except for general comments on how the UI looks and operates.That's IT???? That's all you have to say???? After working 12 hours a day for the last month and a half to re-write everything, not to mention the massive amount of new content that's in there, plus all the new features like the glossary, the improved search system, the improved table of contents, and all the general overall UX improvements, and that's all you have to say???
Are you illiterate? I'm not saying it's bad(idk since I just started learning this whole thing) , I'm just saying that it might pose problems for me since I just started and it would be a real shame if they fundamentally changed the program.... aaaaand an open beta release of a free update is a bad thing because...?
Are you????Are you illiterate?
Hmmmm....I'm not saying it's bad
Please don't insult other members because they take what you say at face value. You literally said it's OVER FOR YOU because you just started with the latest version... That's a negative comment, and the reply you were given was commenting on that negativity. Before accusing others of being illiterate, maybe check and make sure that your own grasp of the English language is perfect.Over for me.
I'll look into it... Been working on it so long that I just kind of take things for granted and never really thought about those aspects. Thanks!I do think some of the CSS animations are a bit Much though e.g. the flash when you change tabs, and the ponderous unfolding animation on the tree. Feels like it could be snappier!
We have plans for dealing with all that in the pipeline.btw. @Nocturne wouldn't it be time to finally move docs2.yoyogames.com to docs.yoyogames.com (with redirection), and remove old 1.x manual from web at all (it's still included in GMS 1.4 in same form). I've seen many times that people links GMS2 users to 1.x manual...
@Nocturne Work faster you... you... SNAIL!That's IT???? That's all you have to say???? After working 12 hours a day for the last month and a half to re-write everything, not to mention the massive amount of new content that's in there, plus all the new features like the glossary, the improved search system, the improved table of contents, and all the general overall UX improvements, and that's all you have to say???
The best time to receive the overhaul! Saves you from needing to unlearn bad practices going forward. You are in a very beneficial position, even if you don't realize it at this moment.I'm just saying that it might pose problems for me since I just started and it would be a real shame if they fundamentally changed the program.
Hey. Please send me a message on here with your account email and I'll take a look. You should have a tab on the downloads page for the beta.Hi all. I got a mail about the open beta but I can't see v2.3 in the download page. How can I download it?
I sent my account email as a message. Thanks.Hey. Please send me a message on here with your account email and I'll take a look. You should have a tab on the downloads page for the beta.
Thanks for the update. I'll wait for the fix, then.We have realised we've got an issue with Steam licences and the beta downloads. We're currently working on a solution. Sorry!
Yes it is! Thanks for the help.Steam issue should be fixed! Please check your downloads page
Solved!Steam issue should be fixed! Please check your downloads page
function test() constructor{
static kkk = 2222;
val = random(11111);
static show = function(){ show_debug_message(val); }
}
function struct_copy(stc){
var tmp = {};//inefficient when stc hasn't static member
var names = variable_struct_get_names(stc);
for( var i=0; i<array_length(names); i++ ){
var nm = names[i];
var val = variable_struct_get(stc,nm);
if( is_struct(val) ){ val = struct_copy(val); }
variable_struct_set(tmp,nm, val);
}
return tmp;
}
var t1 = new test();
var t2 = struct_copy(t1);
t1.val = 1111111;
show_debug_message( t1 )//1111111
show_debug_message( t2 )//keep the original value
show_debug_message( t2.kkk )//error
///concat(a0, a1, a2, a3, ...)
var str = "";
for (var a = 0; a < argument_count; a += 1) {
if is_string(argument[a]) {
str += argument[a];
}
else {
str += string(argument[a]);
}
}
return str;
function foo (args) constructor {}
as class foo (args) {}
?{foo: bar}
the same thing as a "JS object" or a "dictionary"?function Thing (label) constructor {
static all_labels = ds_list_create();
ds_list_add(all_things, label);
}
var li = Thing.all_labels; //the list is now empty
var thing1 = new Thing("a");
var li = Thing.all_labels; //the list now contains "a"
var thing2 = new Thing("b");
var li = Thing.all_labels; //the list now contains "a" and "b"
myobject.func = function (args) {}
in a script, and is the function func then bound to the object (not its instances)? I mean, suppose I want a functionmyobject.sum_of_all_x = function () {
var sum = 0;
with myobject {sum += x;}
return sum;
}
ifunc = function (args) {}
in the create event, will the function ifunc then be bound to all instances of the object? Or can I putvar inst = instance_create(myobject);
inst.ifunc = function () {}
function Foo () constructor {
bar = 3;
raise_the_bar = function () {bar += 1;}
}
myfoo = new Foo();
function Foo () constructor {
static bar = 3;
static raise_the_bar = function () {bar += 1;}
}
Foo.raise_the_bar();
show_debug_message(Foo.bar); //gives 4
function Debugmessagetester () constructor {
log = function (str) {
show_debug_message(str);
}
}
global.debugmessagetester = new Debugmessagetester();
global.debugmessagetester.log("Debugmessagetester repeat 10 start");
repeat 10 {
global.debugmessagetester.log("Debugmessagetester test");
}
global.debugmessagetester.log("Debugmessagetester repeat 10 end");
Debugmessagetester repeat 10 start
Debugmessagetester test
Debugmessagetester repeat 10 end
If you're deep-copying, you need to handle arrays too since they can also be nested inside structs. But other than that, you have the right idea. This is how it's done.How to deep-copy a struct while not reference.
This is my unperfect code....
GML:function test() constructor{ static kkk = 2222; val = random(11111); static show = function(){ show_debug_message(val); } } function struct_copy(stc){ var tmp = {};//inefficient when stc hasn't static member var names = variable_struct_get_names(stc); for( var i=0; i<array_length(names); i++ ){ var nm = names[i]; var val = variable_struct_get(stc,nm); if( is_struct(val) ){ val = struct_copy(val); } variable_struct_set(tmp,nm, val); } return tmp; } var t1 = new test(); var t2 = struct_copy(t1); t1.val = 1111111; show_debug_message( t1 )//1111111 show_debug_message( t2 )//keep the original value show_debug_message( t2.kkk )//error
You are right, a general deep-copying is much more complex for all division of member.If you're deep-copying, you need to handle arrays too since they can also be nested inside structs. But other than that, you have the right idea. This is how it's done.
In any case, deep-copying an arbitrary struct properly is near impossible in the current beta because variable_struct_get() is misbehaving. You have to either run on HTML5 debug (the ONLY one left standing, even HTML5 normal is bad), or downgrade the runtime by one version if you want it to work at least on Windows VM.
Login to your account in yoyogames.com web site. Choose Download and you should see GameMaker Studio 2 Beta. That is 2.3 Beta.Hmmm. I'm looking for the 2.3 open beta download link.
I only see the 2.2.5 download link in my downloads.
I dont' have steam but regular Yoyo purchased GM2.
Is there a secret handshake no one told me about?
I can wait for the official release too..... But it would be fun to learn sequences and use in the next jam.
Thank you. The "Studio 2 Beta" was not highlighted so thought it meant it was not available. Haha . Didnt realize they were unhighlighted buttons you had to press.....Login to your account in yoyogames.com web site. Choose Download and you should see GameMaker Studio 2 Beta. That is 2.3 Beta.
3D arrays are just 1D arrays nested 3 times. Don't expect any special syntax to do any of the work for you.How to declare 3d array?
//10x10x10 filled with 0
array = array_create(10);
for (var i = 0; i < 10; ++i) {
var layer1 = array_create(10);
for (var j = 0; j < 10; ++j) {
layer1[j] = array_create(10, 0);
}
array[i] = layer1;
}
//10x10x10 filled with digit string
array = array_create(10);
for (var i = 0; i < 10; ++i) {
var layer1 = array_create(10);
for (var j = 0; j < 10; ++j) {
var layer2 = array_create(10);
for (var k = 0; k < 10; ++k) {
layer2[k] = string(i) + string(j) + string(k);
}
layer1[j] = layer2;
}
array[i] = layer1;
}
//3x3x3
array = [
[
["000", "001", "002"],
{"010", "011", "012"],
{"020", "021", "022"]
],
[
["100", "101", "102"],
{"110", "111", "112"],
{"120", "121", "122"]
],
[
["200", "201", "202"],
{"210", "211", "212"],
{"220", "221", "222"]
]
];
How to declare 3d array?
var arr;
for (var i=0; i<10; i++)
{
for (var j=0; j<10; j++)
{
for (var k=0; k<10; k++)
{
arr[i][j][k] = 0;
}
}
}
show_debug_message(arr);
var arr = array_create(10, array_create(10, 0));
show_debug_message(arr);
[ [ 0,0,0,0,0,0,0,0,0,0 ],"Warning: recursive array found","Warning: recursive array found","Warning: recursive array found","Warning: recursive array found","Warning: recursive array found","Warning: recursive array found","Warning: recursive array found","Warning: recursive array found","Warning: recursive array found" ]
That's because array_create takes the value to initialize the indexes to, and in your case you're setting it always to the same array (which is the result of the inner array_create call). That is effectively the same as doing:Yeah... not sure what to think of that, but whatever.
var array_that_will_be_set_to_all_indexes = array_create(10);
var arr = array_create(10, array_that_will_be_set_to_all_indexes);