ENIGMA Development Environment
Website is in read-only mode due to a recent attack.

Pages: 1
  Print  
Author Topic: Mark the Penguin [Weird Glitch]  (Read 2299 times)
Offline (Male) time-killer-games
Posted on: April 26, 2013, 08:53:25 PM

Contributor
Location: Virginia Beach
Joined: Jan 2013
Posts: 1170

View Profile Email
So I got sidetracked way from the html5 export as a result of noticing this major problem with engima.
I'm trying to port this game to work with enigma. Major issue - Using the exact same source, GameMaker 8.1 nd GMS work just how they sould.

On enigma, however, the tilesets are out of place, objects are in rooms they aren't supposed to be in, and the objects that should be in a room are sometimes out of place. And my retarted walrus enemy won't move, even though it works in GM8.1 and GMS (everything appears to be just fine in the room editor, when i run it it looks like it god hit by a schoolbus).

This screenshot demonstates the general difference:
https://www.dropbox.com/s/gkw68kzlzew6jav/stupid.png


Here's the source, use it for helping me out with no other purpose in mind (i.e. don't distribute it or claim it as your own in any way).
https://www.dropbox.com/s/ecm4wj708xehd6z/Mark%20the%20Penguin.gm81

Thanks.
« Last Edit: April 26, 2013, 08:55:06 PM by time-killer-games » Logged
Offline (Male) Goombert
Reply #1 Posted on: April 26, 2013, 09:40:42 PM

Developer
Location: Cappuccino, CA
Joined: Jan 2013
Posts: 2993

View Profile
Yes you can blame Polygonz for that, he did the tiles, ENIGMA has a few kinks in some places, that our more intelligent programmers have yet to review  ;)

But please file a bug report on the tracker, this is a game, but it shouldn’t be here in this sub forum unless the post is actually about the game  :eng101:
Logged
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.

Offline (Male) time-killer-games
Reply #2 Posted on: April 27, 2013, 11:35:35 AM

Contributor
Location: Virginia Beach
Joined: Jan 2013
Posts: 1170

View Profile Email
Just added this to the tracker. Thanks. :)

also when this bug is fixed, this will be changed to a topic about the actual game. So hopefully its in the right subforum by those terms...
Logged
Offline (Unknown gender) forthevin
Reply #3 Posted on: April 27, 2013, 12:16:50 PM

Contributor
Joined: Jun 2012
Posts: 167

View Profile
Don't change the topic, make a new topic in WIP. If you post source or post binaries for Windows and Linux, people will be able to play it and test it. Btw., I have had a quick look at the game (haven't had enough time to look into the bug), and the game looks interesting, swimming, jumping out of the water, avoiding obstacles and not run out of air while under water. If you post to WIP, I will have some more comments, but the only one I will make right now is that the fourth line of the step event of the object "character" should be changed from:

Code: [Select]
if (collision_point(x,y,object38|object39|object40,1,1))

To:

Code: [Select]
if (collision_point(x,y,object38,1,1) ||
    collision_point(x,y,object39,1,1) ||
    collision_point(x,y,object40,1,1))

By the way, does the code collision_point(x,y,object38|object39|object40,1,1) actually work correctly in GM?
Logged
Offline (Male) time-killer-games
Reply #4 Posted on: April 27, 2013, 12:23:34 PM

Contributor
Location: Virginia Beach
Joined: Jan 2013
Posts: 1170

View Profile Email
It does work in GM, I was actually suprised because I was being lazy at typing in hopes that would work and sure enough it did.  I'll change that for the sake of enigma however. :)
Logged
Offline (Unknown gender) TheExDeus
Reply #5 Posted on: April 27, 2013, 12:39:15 PM

Developer
Joined: Apr 2008
Posts: 1860

View Profile
That is very weird. In all my years of GM (or coding in general) I have never seen that syntax. :D But sure enough it seems something ENIGMA should have. Josh, get on it.
Logged
Offline (Male) polygone
Reply #6 Posted on: April 27, 2013, 01:03:01 PM

Contributor
Location: England
Joined: Mar 2009
Posts: 794

View Profile
It 'works' in GM but it doesn't do what he's trying to make it do. If that is functioning correctly then it's purely by chance somehow.

So has anybody actually looked at the tile bug? Guess I'll look at it when I get time.
Logged
I honestly don't know wtf I'm talking about but hopefully I can muddle my way through.
Offline (Unknown gender) Ideka
Reply #7 Posted on: April 27, 2013, 06:01:30 PM

Member
Joined: Apr 2011
Posts: 85

View Profile
It 'works' in GM but it doesn't do what he's trying to make it do. If that is functioning correctly then it's purely by chance somehow.
Wouldn't it 'work' in ENIGMA too, then?
Logged
Offline (Male) polygone
Reply #8 Posted on: April 27, 2013, 06:19:28 PM

Contributor
Location: England
Joined: Mar 2009
Posts: 794

View Profile
if (collision_point())

Doesn't work in ENIGMA. You need to use if (collision_point() != noone)
Logged
I honestly don't know wtf I'm talking about but hopefully I can muddle my way through.
Offline (Male) Goombert
Reply #9 Posted on: April 27, 2013, 07:31:04 PM

Developer
Location: Cappuccino, CA
Joined: Jan 2013
Posts: 2993

View Profile
Yes that should work in ENIGMA this|that|theother | and & are bitwise operators, they basically equate to for instance, this and that but not this or this this and that.

Heres a table...

&    AND          Bitwise AND
|    OR                  Bitwise Inclusive OR
^    XOR          Bitwise Exclusive OR
~    NOT          Unary complement (bit inversion)
<<    SHL          Shift Left
>>    SHR          Shift Right
Logged
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.

Offline (Male) Josh @ Dreamland
Reply #10 Posted on: April 28, 2013, 02:04:28 AM

Prince of all Goldfish
Developer
Location: Pittsburgh, PA, USA
Joined: Feb 2008
Posts: 2951

View Profile Email
Hate to rain on anyone's parade, but collision_point(x,y,object38|object39|object40,1,1) is equivalent to collision_point(x,y,object47,1,1) (assuming object47 exists) unless GM does special parsing for ORs inside collision functions, which I am all but completely certain it does not. Any resemblance to intended behavior is coincidental. To achieve that more efficiently, those objects should be given a parent, and the function should check for collisions with that parent object.
Logged
"That is the single most cryptic piece of code I have ever seen." -Master PobbleWobble
"I disapprove of what you say, but I will defend to the death your right to say it." -Evelyn Beatrice Hall, Friends of Voltaire
Offline (Male) Goombert
Reply #11 Posted on: April 28, 2013, 01:26:08 PM

Developer
Location: Cappuccino, CA
Joined: Jan 2013
Posts: 2993

View Profile
No Josh you are wrong, Game Maker allows bitwise operators with collision detection

http://wiki.yoyogames.com/index.php/Physics_Collision_Filtering
Logged
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.

Offline (Male) Josh @ Dreamland
Reply #12 Posted on: April 28, 2013, 01:38:58 PM

Prince of all Goldfish
Developer
Location: Pittsburgh, PA, USA
Joined: Feb 2008
Posts: 2951

View Profile Email
That is for return values to check between two instances involved in a specific collision. It does not imply that passing object1|object2 to collision_point will make the function know to check against instances of both objects.
Logged
"That is the single most cryptic piece of code I have ever seen." -Master PobbleWobble
"I disapprove of what you say, but I will defend to the death your right to say it." -Evelyn Beatrice Hall, Friends of Voltaire
Offline (Unknown gender) TheExDeus
Reply #13 Posted on: April 28, 2013, 04:03:01 PM

Developer
Joined: Apr 2008
Posts: 1860

View Profile
I can't see the example as it's in GM:S format, but I suspect the wiki mentioned the idea on how the internal works, not how you can program it in GML.  And there "bitwise or" makes sense, just like it would in GML and EDL, but in collision_point() or similar function it wouldn't. Just like you can't instance_create(10,10,object1&object2) to create two objects. Though all of this could be a nice feature.
Logged
Offline (Male) polygone
Reply #14 Posted on: April 28, 2013, 04:22:43 PM

Contributor
Location: England
Joined: Mar 2009
Posts: 794

View Profile
josh was going to add instance list shit, they could be used for this.
Logged
I honestly don't know wtf I'm talking about but hopefully I can muddle my way through.
Pages: 1
  Print