actually: "." will apply to 1 instance only. and if no instance exists the game breaks!!
"." applies to all the instances in which it is valid to be applied to. If it is not logical to apply to many instances, it will be applied to the first in priority order.
If you have a pointer called "instance" pointing to an instance,
will apply it to the instance pointed by the pointer.
If however you have an object called "instance", the same code will make all instances of the object move 1 pixel to the right.
However, funnily enough, this is exactly how it works: (Now with the object "obj")
obj.x++ means obj.x =obj.x + 1;
obj.x = obj.x + 1 will take the value of obj.x, which means, take the x value of the first instance of object "obj" in priority list, sum 1 to it and put it on the value of x to every instance of the object "obj", making all of the objects result into having the same resulting x value, instead of summing 1 to its own value.
If this is applied by every object "obj", it will make all objects obj have the same resulting x value of the first object obj.x + instance_count.
I tested this condition by placing 5 Player objects on screen with a modified code when T is pressed:
I moved them to different positions, and once T was pressed all of them had their x value reset to the x of the first Player object in priority summed by 5.
I don't think this is intended however, it seems like a low level programming problem, like a race condition of some sort.
That is an interesting result, because that means "." will just take the value of the first instance it can find if applied on the right side of an attribution, but will apply to every possible instance if applied on the left side, while "with()" will take the values from each individual instance used.