Jump to content
A 2021 backup has been restored. Forums are closed and work in progress. Join our Discord server for more updates! ×
SoaH City Message Board

Sonic Nexus 2008 Demo is Out


The Taxman

Recommended Posts

So C_BOX sets the default solidity, and C_TOUCH is just a check?

Wouldn't it be less confusing to have seperate functions instead of flags to the same function? As in, PlayerObjectCollisionCheck and PlayerObjectCollisionSet? Then you could use the same flags for both, and they would have different meanings.

Link to comment
Share on other sites

So C_BOX sets the default solidity, and C_TOUCH is just a check?

Wouldn't it be less confusing to have seperate functions instead of flags to the same function? As in, PlayerObjectCollisionCheck and PlayerObjectCollisionSet? Then you could use the same flags for both, and they would have different meanings.

No you guys are wrong, it's one function that tests for player to object collision with 5 parameters:

-Type of Collision: C_TOUCH (e.g. rings) C_BOX (e.g. solid block) C_PLATFORM (You should know :P)

-left collision bounding box offset

-top collision bounding box offset

-right collision bounding box offset

-bottom collision bounding box offset

The result of the collision is then stored in the CheckResult variable which you can then use to perform an appropriate action

Link to comment
Share on other sites

So C_BOX sets the default solidity, and C_TOUCH is just a check?

Wouldn't it be less confusing to have seperate functions instead of flags to the same function? As in, PlayerObjectCollisionCheck and PlayerObjectCollisionSet? Then you could use the same flags for both, and they would have different meanings.

It works and isn't any dirty, why change? (Also, you would want to check different areas for different stuff)

Link to comment
Share on other sites

Not sure if I've commented on the game.

I'm really impressed. This is one of the most excellent fangames I've ever played. It reminds me of Sonic CD (sans the Time Travel). And the graphics are the best I've seen when it comes to genesis style, and the music is really addictive to listen to. Keep up the good work! Looking forward to the full game!

EDIT: I only have a few minor complaints but I think they're all have already been said in this topic.

Link to comment
Share on other sites

You guys should keep all the small bugs, it makes it play more like a real Sonic Team Genesis title.

Man, those games were full of collision bugs... And the new ones still are too...

Some things never change I guess...

Anyway, the demo was awesome. Best Sonic fangame I've played yet...

You guys really should consider trying to create your own original title one day... you have some real talent there...

Link to comment
Share on other sites

maybe....

		if CheckResult==1
			Object.Value0=8
			Player.State=1
			Player.Gravity=true
			Player.YVelocity=-655360
			Player.Animation=11
		[B][COLOR="Red"]end if[/COLOR][/B]

edit: btw, python doesnt use braces, just identation and its more readable than most c/c++ programs

edit2: if your program has more than 3-4 identation layers you are doing something wrong

Link to comment
Share on other sites

AeroGP there's no expression evaluation in the script other than simple direct evaluation. If you need to evaluate complex expressions, you'll have to do it in various steps. The script system Taxman made is for the sake of perfomance and simplicity. Not like you'll ever get to evaluate ultra complex expressions thought.

Link to comment
Share on other sites

edit2: if your program has more than 3-4 identation layers you are doing something wrong

What if I were defining a function, and in said function there was a switch/case construct based upon one of the parameters. In one of the cases, there's an if, and inside that if I use nested for loops to iterate through a two-dimensional array. Completely feasible scenario with 5 indentation layers.

Who's doing it wrong now?

Link to comment
Share on other sites

        while(Halt == false) {
            switch(VirtualMachine->Instruction->Opcode) {
                case Asm::INSTRUCTION_MOV:
                    switch(VirtualMachine->State) {
                        case STATE_RUNNING:
                            switch(VirtualMachine->Instruction->LeftArgument.Type) {
                                case Asm::ARGUMENT_REGISTER: Left = &VirtualMachine->Register[VirtualMachine->Instruction->LeftArgument.Vector]; 

Sometimes you need to have a lot of identation layers for the sake of perfomance and readibility (oh, hai, I'm using jump tables optimizations!)

Link to comment
Share on other sites

maybe....

edit2: if your program has more than 3-4 identation layers you are doing something wrong

Yeah, there are cases when you'll need even more than that, though I'll agree that most people, including professional programmers are, in fact, doing something wrong...

Or lazy, or rushing to meet a deadline and had to do some stream of consciousness programming at 4 in the morning and little sleep or sanity, or brain function (or at least, that's what a professor of mine mentioned happening many years ago)...

I do guarantee that 90% of those idiotic cases are done in php...

I'm sure if you poke around http://www.thedailywtf.com you'll find some examples of such idiocracy...

Link to comment
Share on other sites

No you guys are wrong, it's one function that tests for player to object collision with 5 parameters:

-Type of Collision: C_TOUCH (e.g. rings) C_BOX (e.g. solid block) C_PLATFORM (You should know :P)

-left collision bounding box offset

-top collision bounding box offset

-right collision bounding box offset

-bottom collision bounding box offset

The result of the collision is then stored in the CheckResult variable which you can then use to perform an appropriate action

Isn't that sort of what Mugen does for it's character collision?

[Begin Action 0]
Clsn2: 7
  Clsn2[0] = -6, -45, 7, -26
  Clsn2[1] = -3, -51, 7, -41
  Clsn2[2] = -5, -70, 14, -46
  Clsn2[3] = -10, -7, 0, 6
  Clsn2[4] = -6, -31, 3, -5
  Clsn2[5] = 2, -31, 11, -1
  Clsn2[6] = 3, -3, 14, 7

Clipboard02-7.png

This basically draws boxes within the given parameters.

Clsn2[0] = -6, -45, 7, -26

The red numbers are the X and Y scale of the collision box. The green ones are the X and Y positions of the collision box.

This is probably nothing like it though.

Link to comment
Share on other sites

Problem with .avi is that depending on the compression you used, it can get monstrously big. So much so that you might even spend up to several hours trying to upload the bitch (remember, most ISPs give you lower upload speeds than download speeds).

It's kind of pointless to use uncompressed anyway too, especially considering they are just going to rape your video anyway.

Link to comment
Share on other sites

Well, the only entries which are official are replies to Brad's original video. But some people are hiding away their entries so no one can copy them til the last minute. Brad says someone hit 48.87 on the first level. And I myself have a 49.81. I have no idea about the second level.

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...