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

The Taxman

Members
  • Posts

    90
  • Joined

  • Last visited

  • Days Won

    3

The Taxman last won the day on March 9 2009

The Taxman had the most liked content!

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

The Taxman's Achievements

Newbie

Newbie (1/14)

0

Reputation

  1. Ok, someone pointed this topic out to me, and I checked every single point of contact I have. No messages from you ever mate. FYI : I designed Desert Dazzle and Final Fever during the Sonic CD (2011)'s development. That particular screenshot is property of SEGA as it was included in the final product. I will not give permission to use this, just as SEGA never gives you permission to use other graphics. Whether you choose to ignore intellectual property rights is your call. It would be a shame to have my work recognized by an inferior copy though. (less than half of the artwork is even visible to you, nor the actual level design). Why not spend some extra time and come up with your own desert level?
  2. Oh hey, people talking about me! I'm not involved in Sonic 4 iPhone or otherwise so uh... sorry? I am working on some awesome stuff though, which I can't discuss publicly (NDA) so sorry again? You should see at least one of the things I'm working on this year though so stay tuned.
  3. Either that, or Eggman turned to pushing some mad gear on the streets after "budget cuts"
  4. There's also GameSalad http://gamesalad.com/ It's free, so it can't hurt to give it a try.
  5. Here's a simple way to do boss collision if Player's CollisionBox Collides with the Boss' Collision Box: Player.XSpeed=(Player.XPos-Boss.XPos)*BounceBackStrength Player.YSpeed=(Player.YPos-Boss.YPos)*BounceBackStrength end if BounceBackStrength is usually a fractional value, since the speed would be too great otherwise. Play around with the value to get the optimum bouncing speed.
  6. The Polites are playing this friday with The Greasers at Royal Derby Hotel - 446 Brunswick Street actually heh
  7. Hey gang, I wasn't going to make this public for a little while, but given SEGA's latest blog post, and their upcoming discussions on wednesday it's time for some guerilla marketing! Recently, I've been in contact with SEGA in regards to doing an enhanced port of Sonic CD for the iPhone. I put together a proof of concept demo and video demonstrating the game fully functional on Apple's iDevice http://www.christianwhitehead.com/soniccd/view.html http://www.youtube.com/watch?v=4teDIp32mXI The question is, do YOU want it? Let SEGA know. This is more than just one of their crappy emulator ports, we're talking iPhone exclusive enhancements and features (I've got some cool plans) Discuss
  8. The Flash version of MMF, works on my mac though, so there isn't any Windows stuff going on here. Like I said, Clickteam most likely took the engine code of MMF and used alchemy to create a flash implementation of it. Then, they'd just have a template swf file that they could insert your mmf game data via the new swf export option. http://labs.adobe.com/technologies/alchemy/
  9. I'd say they're probably using Flash's Alchemy technology to run MMF inside flash. Alchemy allows C/C++ code to be compiled for the Flash JIT stuff. So instead of saving an exe file, the swf export option would generate a swf with the relevant code for Alchemy.
  10. It's being done by sumo digital, who also did that superstars tennis game
  11. Nah, the rotation is handled with sin and cos functions: //Draw the 4th Pair of Stars TempValue2=Object.Angle2 TempValue2+=116 Cos(TempValue0,TempValue2) Sin(TempValue1,TempValue2) TempValue0<<=11 TempValue1<<=11 ArrayPos0=1 TempValue0+=StarPos7[+ArrayPos0] ArrayPos0=2 TempValue1+=StarPos7[+ArrayPos0] DrawSpriteXY(Object.Stars4,TempValue0,TempValue1) TempValue2=Object.Angle2 TempValue2+=372 Cos(TempValue0,TempValue2) Sin(TempValue1,TempValue2) TempValue0<<=11 TempValue1<<=11 ArrayPos0=1 TempValue0+=StarPos7[+ArrayPos0] ArrayPos0=2 TempValue1+=StarPos7[+ArrayPos0] TempValue2=Object.Stars4 TempValue2+=3 DrawSpriteXY(TempValue2,TempValue0,TempValue1) //Draw the 3rd Pair of Stars Cos(TempValue0,Object.Angle2) Sin(TempValue1,Object.Angle2) TempValue0<<=11 TempValue1<<=11 ArrayPos0=1 TempValue0+=StarPos5[+ArrayPos0] ArrayPos0=2 TempValue1+=StarPos5[+ArrayPos0] DrawSpriteXY(Object.Stars3,TempValue0,TempValue1) TempValue2=Object.Angle2 TempValue2+=256 Cos(TempValue0,TempValue2) Sin(TempValue1,TempValue2) TempValue0<<=11 TempValue1<<=11 ArrayPos0=1 TempValue0+=StarPos5[+ArrayPos0] ArrayPos0=2 TempValue1+=StarPos5[+ArrayPos0] TempValue2=Object.Stars3 TempValue2+=5 DrawSpriteXY(TempValue2,TempValue0,TempValue1) //Draw the 2nd Pair of Stars TempValue2=Object.Angle2 TempValue2+=168 Cos(TempValue0,TempValue2) Sin(TempValue1,TempValue2) TempValue0<<=11 TempValue1<<=11 ArrayPos0=1 TempValue0+=StarPos3[+ArrayPos0] ArrayPos0=2 TempValue1+=StarPos3[+ArrayPos0] DrawSpriteXY(Object.Stars2,TempValue0,TempValue1) TempValue2=Object.Angle2 TempValue2+=424 Cos(TempValue0,TempValue2) Sin(TempValue1,TempValue2) TempValue0<<=11 TempValue1<<=11 ArrayPos0=1 TempValue0+=StarPos3[+ArrayPos0] ArrayPos0=2 TempValue1+=StarPos3[+ArrayPos0] TempValue2=Object.Stars2 TempValue2+=3 DrawSpriteXY(TempValue2,TempValue0,TempValue1) //Draw the 1st Pair of Stars Cos(TempValue0,Object.Angle1) Sin(TempValue1,Object.Angle1) TempValue0<<=11 TempValue1<<=11 TempValue0+=Player.XPos TempValue1+=Player.YPos DrawSpriteXY(Object.Stars1,TempValue0,TempValue1) TempValue2=Object.Angle1 TempValue2+=256 Cos(TempValue0,TempValue2) Sin(TempValue1,TempValue2) TempValue0<<=11 TempValue1<<=11 TempValue0+=Player.XPos TempValue1+=Player.YPos TempValue2=Object.Stars3 TempValue2+=5 DrawSpriteXY(Object.Stars1,TempValue0,TempValue1) [/CODE] The radius of the rotation stars is 16 pixels so in mmf it'd look more like this Star_XPosition = Star_CentreX + ( cos(RotationAngle) * 16 ) Star_YPosition = Star_CentreY + ( sin(RotationAngle) *16 ) Star_CentreX and Star_CentreY are the buffered positions of PlayerX and PlayerY. The older the buffer data, the more delayed the star trailing effect is
  12. Bulky? This one was a fairly basic sized script XD No you wouldn't be able to port that code directly, apart from the fact the script syntax is my own, the Retro Engine works very differently to the object system of MMF. For example, MMF would need each star twinkle to be a separate active object, where as using the manual drawing methods in the Retro Engine, the stars are drawn with one script. It should still be possible to duplicate the algorithm though. It's just not laid out in an obvious manner, so yeah sorry. I just can't be bothered going into mmf and dealing with it XD
  13. Here's the script file for how it's done in Retro-Sonic XG... bear in mind it's using fixed point math instead of floats hence the bit shifting in areas. It might be a little complex though so sorry if it's no help //---------Retro Sonic XG Invincibility Stars---------// //----Scripted by Christian Whitehead "The Taxman"----// //----Player Directions----// #alias 1 : FACING_LEFT #alias 0 : FACING_RIGHT #alias Object.Value0 : Object.Angle1 #alias Object.Value1 : Object.Angle2 #alias Object.Value2 : Object.Stars1 #alias Object.Value3 : Object.Stars2 #alias Object.Value4 : Object.Stars3 #alias Object.Value5 : Object.Stars4 #alias Object.Value0 : StarPos0 #alias Object.Value1 : StarPos1 #alias Object.Value2 : StarPos2 #alias Object.Value3 : StarPos3 #alias Object.Value4 : StarPos4 #alias Object.Value5 : StarPos5 #alias Object.Value6 : StarPos6 #alias Object.Value7 : StarPos7 sub ObjectMain if Object.State==0 //Set the Star Positions ArrayPos0=1 StarPos7[+ArrayPos0]=Player.XPos StarPos6[+ArrayPos0]=Player.XPos StarPos5[+ArrayPos0]=Player.XPos StarPos4[+ArrayPos0]=Player.XPos StarPos3[+ArrayPos0]=Player.XPos StarPos2[+ArrayPos0]=Player.XPos StarPos1[+ArrayPos0]=Player.XPos StarPos0[+ArrayPos0]=Player.XPos ArrayPos0=2 StarPos7[+ArrayPos0]=Player.YPos StarPos6[+ArrayPos0]=Player.YPos StarPos5[+ArrayPos0]=Player.YPos StarPos4[+ArrayPos0]=Player.YPos StarPos3[+ArrayPos0]=Player.YPos StarPos2[+ArrayPos0]=Player.YPos StarPos1[+ArrayPos0]=Player.YPos StarPos0[+ArrayPos0]=Player.YPos Object.Angle1=180 Object.Angle2=0 Object.Stars4=20 Object.Stars3=0 Object.Stars2=32 Object.Stars1=44 Object.State=1 end if end sub sub ObjectDraw //Update the Star Frames Object.Stars4++ if Object.Stars4==26 Object.Stars4=20 end if Object.Stars3++ if Object.Stars3==10 Object.Stars3=0 end if Object.Stars2++ if Object.Stars2==38 Object.Stars2=32 end if Object.Stars1++ if Object.Stars1==56 Object.Stars1=44 end if //Update the Star Positions ArrayPos0=1 StarPos7[+ArrayPos0]=StarPos6[+ArrayPos0] StarPos6[+ArrayPos0]=StarPos5[+ArrayPos0] StarPos5[+ArrayPos0]=StarPos4[+ArrayPos0] StarPos4[+ArrayPos0]=StarPos3[+ArrayPos0] StarPos3[+ArrayPos0]=StarPos2[+ArrayPos0] StarPos2[+ArrayPos0]=StarPos1[+ArrayPos0] StarPos1[+ArrayPos0]=StarPos0[+ArrayPos0] StarPos0[+ArrayPos0]=Player.XPos ArrayPos0=2 StarPos7[+ArrayPos0]=StarPos6[+ArrayPos0] StarPos6[+ArrayPos0]=StarPos5[+ArrayPos0] StarPos5[+ArrayPos0]=StarPos4[+ArrayPos0] StarPos4[+ArrayPos0]=StarPos3[+ArrayPos0] StarPos3[+ArrayPos0]=StarPos2[+ArrayPos0] StarPos2[+ArrayPos0]=StarPos1[+ArrayPos0] StarPos1[+ArrayPos0]=StarPos0[+ArrayPos0] StarPos0[+ArrayPos0]=Player.YPos if Player.Direction==FACING_RIGHT Object.Angle1+=144 if Object.Angle1>511 Object.Angle1-=512 end if Object.Angle2+=16 if Object.Angle2>511 Object.Angle2-=512 end if else Object.Angle1-=144 if Object.Angle1<0 Object.Angle1+=512 end if Object.Angle2-=16 if Object.Angle2<0 Object.Angle2+=512 end if end if //Draw the 4th Pair of Stars TempValue2=Object.Angle2 TempValue2+=116 Cos(TempValue0,TempValue2) Sin(TempValue1,TempValue2) TempValue0<<=11 TempValue1<<=11 ArrayPos0=1 TempValue0+=StarPos7[+ArrayPos0] ArrayPos0=2 TempValue1+=StarPos7[+ArrayPos0] DrawSpriteXY(Object.Stars4,TempValue0,TempValue1) TempValue2=Object.Angle2 TempValue2+=372 Cos(TempValue0,TempValue2) Sin(TempValue1,TempValue2) TempValue0<<=11 TempValue1<<=11 ArrayPos0=1 TempValue0+=StarPos7[+ArrayPos0] ArrayPos0=2 TempValue1+=StarPos7[+ArrayPos0] TempValue2=Object.Stars4 TempValue2+=3 DrawSpriteXY(TempValue2,TempValue0,TempValue1) //Draw the 3rd Pair of Stars Cos(TempValue0,Object.Angle2) Sin(TempValue1,Object.Angle2) TempValue0<<=11 TempValue1<<=11 ArrayPos0=1 TempValue0+=StarPos5[+ArrayPos0] ArrayPos0=2 TempValue1+=StarPos5[+ArrayPos0] DrawSpriteXY(Object.Stars3,TempValue0,TempValue1) TempValue2=Object.Angle2 TempValue2+=256 Cos(TempValue0,TempValue2) Sin(TempValue1,TempValue2) TempValue0<<=11 TempValue1<<=11 ArrayPos0=1 TempValue0+=StarPos5[+ArrayPos0] ArrayPos0=2 TempValue1+=StarPos5[+ArrayPos0] TempValue2=Object.Stars3 TempValue2+=5 DrawSpriteXY(TempValue2,TempValue0,TempValue1) //Draw the 2nd Pair of Stars TempValue2=Object.Angle2 TempValue2+=168 Cos(TempValue0,TempValue2) Sin(TempValue1,TempValue2) TempValue0<<=11 TempValue1<<=11 ArrayPos0=1 TempValue0+=StarPos3[+ArrayPos0] ArrayPos0=2 TempValue1+=StarPos3[+ArrayPos0] DrawSpriteXY(Object.Stars2,TempValue0,TempValue1) TempValue2=Object.Angle2 TempValue2+=424 Cos(TempValue0,TempValue2) Sin(TempValue1,TempValue2) TempValue0<<=11 TempValue1<<=11 ArrayPos0=1 TempValue0+=StarPos3[+ArrayPos0] ArrayPos0=2 TempValue1+=StarPos3[+ArrayPos0] TempValue2=Object.Stars2 TempValue2+=3 DrawSpriteXY(TempValue2,TempValue0,TempValue1) //Draw the 1st Pair of Stars Cos(TempValue0,Object.Angle1) Sin(TempValue1,Object.Angle1) TempValue0<<=11 TempValue1<<=11 TempValue0+=Player.XPos TempValue1+=Player.YPos DrawSpriteXY(Object.Stars1,TempValue0,TempValue1) TempValue2=Object.Angle1 TempValue2+=256 Cos(TempValue0,TempValue2) Sin(TempValue1,TempValue2) TempValue0<<=11 TempValue1<<=11 TempValue0+=Player.XPos TempValue1+=Player.YPos TempValue2=Object.Stars3 TempValue2+=5 DrawSpriteXY(Object.Stars1,TempValue0,TempValue1) end sub sub ObjectStartup LoadSpriteSheet("Global/Items.gif") //Invincibility Star Frames SpriteFrame(0,0,1,1,118,304) SpriteFrame(-1,-1,3,3,117,303) SpriteFrame(-3,-3,7,7,117,307) SpriteFrame(-7,-7,15,15,125,303) SpriteFrame(-10,-10,21,21,117,319) SpriteFrame(-15,-15,31,31,143,332) SpriteFrame(-10,-10,21,21,117,319) SpriteFrame(-7,-7,15,15,125,303) SpriteFrame(-3,-3,7,7,117,307) SpriteFrame(-1,-1,3,3,117,303) SpriteFrame(0,0,1,1,118,304) SpriteFrame(-1,-1,3,3,117,303) SpriteFrame(-3,-3,7,7,117,307) SpriteFrame(-7,-7,15,15,125,303) SpriteFrame(-10,-10,21,21,117,319) SpriteFrame(-15,-15,31,31,143,332) SpriteFrame(-10,-10,21,21,117,319) SpriteFrame(-7,-7,15,15,125,303) SpriteFrame(-3,-3,7,7,117,307) SpriteFrame(-1,-1,3,3,117,303) //Frame 20 SpriteFrame(0,0,1,1,118,304) SpriteFrame(-1,-1,3,3,117,303) SpriteFrame(-3,-3,7,7,117,307) SpriteFrame(-7,-7,15,15,125,303) SpriteFrame(-3,-3,7,7,117,307) SpriteFrame(-1,-1,3,3,117,303) SpriteFrame(0,0,1,1,118,304) SpriteFrame(-1,-1,3,3,117,303) SpriteFrame(-3,-3,7,7,117,307) SpriteFrame(-7,-7,15,15,125,303) SpriteFrame(-3,-3,7,7,117,307) SpriteFrame(-1,-1,3,3,117,303) //Frame 32 SpriteFrame(-3,-3,7,7,117,307) SpriteFrame(-7,-7,15,15,125,303) SpriteFrame(-10,-10,21,21,117,319) SpriteFrame(-15,-15,31,31,143,332) SpriteFrame(-10,-10,21,21,117,319) SpriteFrame(-7,-7,15,15,125,303) SpriteFrame(-3,-3,7,7,117,307) SpriteFrame(-7,-7,15,15,125,303) SpriteFrame(-10,-10,21,21,117,319) SpriteFrame(-15,-15,31,31,143,332) SpriteFrame(-10,-10,21,21,117,319) SpriteFrame(-7,-7,15,15,125,303) //Frame 44 SpriteFrame(-15,-15,31,31,143,332) SpriteFrame(-3,-3,7,7,117,307) SpriteFrame(-7,-7,15,15,125,303) SpriteFrame(-3,-3,7,7,117,307) SpriteFrame(-3,-3,7,7,117,307) SpriteFrame(-7,-7,15,15,125,303) SpriteFrame(-3,-3,7,7,117,307) SpriteFrame(-15,-15,31,31,143,332) SpriteFrame(-3,-3,7,7,117,307) SpriteFrame(-7,-7,15,15,125,303) SpriteFrame(-7,-7,15,15,125,303) SpriteFrame(-3,-3,7,7,117,307) end sub sub RSDK LoadSpriteSheet("Global/Items.gif") SetEditorIcon(Icon0,SingleIcon,-15,-15,31,31,143,332) end sub [/CODE]
  14. Actually, the trailing effect is achieved by having a buffer of x,y positions for the centre of the rotating circle of stars. Each frame, the x and y position of the player is copied to the next buffer position. Retro Sonic XG has the Sonic2/3 invincibility stars, I could post my script file for it, but you might have trouble reinterpreting it for mmf
×
×
  • Create New...