Be a Supporter!

AS: Platform Placing

  • 3,996 Views
  • 15 Replies
New Topic Respond to this Topic
Hoeloe
Hoeloe
  • Member since: Apr. 29, 2004
  • Offline.
Forum Stats
Member
Level 37
Game Developer
AS: Platform Placing May. 1st, 2006 @ 02:02 PM Reply

RELATED LINKS:
AS: Main
AS: Duplicated Movie Clips
AS: Frame Functions
Ultimate Tutorial 2

THE TUTORIAL:
First off, create a ball. Make it a movie Clip with the instance of circle, then add the actions below:
onClipEvent (load) {
fall = false;
_name = "circle";
jump = 0;
speed = 8;
jumpheight = 15;
maxfall = -54;
}
onClipEvent (enterFrame) {
xmin = getBounds(_root).xMin;
xmax = getBounds(_root).xMax;
ymin = getBounds(_root).yMin;
ymax = getBounds(_root).yMax;
if (Key.isDown(Key.SPACE) && fall == false && jump == undefined) {
fall = true;
jump = jumpheight;
}
if (jump<>undefined) {
if (jump>maxfall) {
jump--;
}
_y -= jump;
}
}
onClipEvent (enterFrame) {
if (Key.isDown(Key.LEFT)) {
_x -= speed;
}
if (Key.isDown(Key.RIGHT)) {
_x += speed;
}
}

this makes the player moveable and jumpable when on a platform

Next, draw a platform on the floor. do not give it an instance name. add this script to it:
onClipEvent (load) {
activated = false;
down = false;
}
onClipEvent (enterFrame) {
_root.report.text = Math.round(_root.circle.yMax)+" "+Math.round(yMin);
xmin = getBounds(_root).xMin;
xmax = getBounds(_root).xMax;
ymin = getBounds(_root).yMin;
ymax = getBounds(_root).yMax;
if (_root.circle.xMax>xMin && _root.circle.xMin<xMax && _root.circle.yMax<yMin) {
if (_root.circle.yMax-_root.circle.jump*2>yMi
n) {
_root.circle._y = ymin-_root.circle._height/2;
_root.circle.jump = undefined;
_root.circle.fall = false;
activated = true;
}
}
if (Math.round(_root.circle.yMax)>Math.round(
yMin)) {
if (hitTest(_root.circle) && _root.circle.xmax<xmin) {
_root.circle._x -= _root.circle.speed;
}
if (hitTest(_root.circle) && _root.circle.xmin>xmax) {
_root.circle._x += _root.circle.speed;
}
if (hitTest(_root.circle) && _root.circle.ymin>ymax && _root.circle.jump>-1) {
_root.circle.jump = -1*(_root.circle.jump);
}
}
if (activated == true && not hitTest(_root.circle) && _root.circle.jump == undefined) {
_root.circle.jump = 0;
activated = false;
}
if (hitTest(_root.circle) && _root.circle.ymax>ymin && _root.circle.jump<>undefined && _root.circle._y<_y) {
_root.circle._y = ymin-_root.circle._height/2;
_root.circle.jump = undefined;
_root.circle.fall = false;
activated = true;
}
if (_root.circle.ymax-_root.circle.jump>ymin && _root.circle.xMin<xMax && _root.circle.xMax>xMin && _root.circle.jump<>undefined && _root.circle._y<_y) {
_root.circle._y = ymin-_root.circle._height/2;
_root.circle.jump = undefined;
_root.circle.fall = false;
activated = true;
}
}

this makes a fully funtional platform with walls, ceiling and floor.

now copy that and resize it to make walls and a ceiling. You can dowload a sample file of the above in Ultimate Tutorial 2.
Now, make a small square movie clip off screen with the instance "plat" no quotes, and the sam script as the platform.
Now make a Dynamic Text Box with the variable name "power" no quotes.
Add the following actions to the frame:
onLoad = function(){
i = 1;
power = 100;
placing = false;
}
onMouseDown = function(){
placing = true;
}
onEnterFrame = function(){
if(placing){
if(power >0){
i ++;
_root.plat.duplicateMovieClip("plat"+i,100
0 + i);
_root["plat"+i]._x = _root._xmouse;
_root["plat"+i]._y = _root._ymouse;
_root["plat"+i]._alpha = power;
power --;
}
}
}
onMouseUp = function(){
placing = false;
}

this makes the plat movie clip duplicate when the mouse is down, and creates a platform that will work in the same way as the floor, walls or ceilings, and makes you only be able to build one if you have power.

The last thing to do is go to File/Publish Settings and make sure that the export flash player is 6, yes flash 6, or it wont work.

To view a sample, click here


Song of the Firefly is on Steam Greenlight and Facebook. Give them a look and support the project!
------------------------------

BBS Signature
Nick
Nick
  • Member since: Aug. 22, 2005
  • Offline.
Forum Stats
Member
Level 23
Blank Slate
Response to AS: Platform Placing May. 1st, 2006 @ 02:06 PM Reply

Should be a Foss, IMO.

Hoeloe
Hoeloe
  • Member since: Apr. 29, 2004
  • Offline.
Forum Stats
Member
Level 37
Game Developer
Response to AS: Platform Placing May. 1st, 2006 @ 02:33 PM Reply

wot is FOSS?


Song of the Firefly is on Steam Greenlight and Facebook. Give them a look and support the project!
------------------------------

BBS Signature
yam
yam
  • Member since: Mar. 12, 2006
  • Offline.
Forum Stats
Member
Level 02
Blank Slate
Response to AS: Platform Placing May. 1st, 2006 @ 02:43 PM Reply

Could of explained the code abit better, but nice!

Toast
Toast
  • Member since: Apr. 2, 2005
  • Offline.
Forum Stats
Member
Level 09
Blank Slate
Response to AS: Platform Placing May. 1st, 2006 @ 02:44 PM Reply

You didn't write that code, and you didn't give any explanations neither...


BBS Signature
yam
yam
  • Member since: Mar. 12, 2006
  • Offline.
Forum Stats
Member
Level 02
Blank Slate
Response to AS: Platform Placing May. 1st, 2006 @ 02:47 PM Reply

At 5/1/06 02:06 PM, _Nick_ wrote: Should be a Foss, IMO.

four more posts nick, then you get 1337

Nick
Nick
  • Member since: Aug. 22, 2005
  • Offline.
Forum Stats
Member
Level 23
Blank Slate
Response to AS: Platform Placing May. 1st, 2006 @ 03:07 PM Reply

At 5/1/06 02:33 PM, Hoeloe wrote: wot is FOSS?

Free Open Source Software :D

Toast
Toast
  • Member since: Apr. 2, 2005
  • Offline.
Forum Stats
Member
Level 09
Blank Slate
Response to AS: Platform Placing May. 1st, 2006 @ 03:15 PM Reply

At 5/1/06 03:07 PM, _Nick_ wrote:
At 5/1/06 02:33 PM, Hoeloe wrote: wot is FOSS?
Free Open Source Software :D

ur teh 1337 :o


BBS Signature
Hoeloe
Hoeloe
  • Member since: Apr. 29, 2004
  • Offline.
Forum Stats
Member
Level 37
Game Developer
Response to AS: Platform Placing May. 1st, 2006 @ 03:19 PM Reply

At 5/1/06 02:06 PM, _Nick_ wrote: Should be a Foss, IMO.

so is that a compliment or an insult?


Song of the Firefly is on Steam Greenlight and Facebook. Give them a look and support the project!
------------------------------

BBS Signature
Nick
Nick
  • Member since: Aug. 22, 2005
  • Offline.
Forum Stats
Member
Level 23
Blank Slate
Response to AS: Platform Placing May. 1st, 2006 @ 03:40 PM Reply

At 5/1/06 03:19 PM, Hoeloe wrote:
At 5/1/06 02:06 PM, _Nick_ wrote: Should be a Foss, IMO.
so is that a compliment or an insult?

Neither really. Had you have titled it Foss, then I would've said something like "Good work".

Aww, i'm not 1337 anymores :'(
Hoeloe
Hoeloe
  • Member since: Apr. 29, 2004
  • Offline.
Forum Stats
Member
Level 37
Game Developer
Response to AS: Platform Placing May. 1st, 2006 @ 04:46 PM Reply

ok the first two pieces of code(player + platforms) are explained in Ultimate tutorial 2,
the third code i can explain however as i wrote it:
onLoad = function(){ //the same as onClipEvent(load)
i = 1; //sets i
power = 100; //sets power
placing = false; //sets placing to false
}
onMouseDown = function(){ //same as onClipEvent(mouseDown)
placing = true;//sets placing to true
}
onEnterFrame = function(){ //same as onClipEvent(enterFrame)
if(placing){ // if placing is true
if(power >0){ // and power is bigger than 0
i ++; // i adds 1
_root.plat.duplicateMovieClip("plat"+i,100
0 + i); // duplicates plat
_root["plat"+i]._x = _root._xmouse;
_root["plat"+i]._y = _root._ymouse;// plat duplicate moves to the mouse position
_root["plat"+i]._alpha = power; // the less power you have, the less visible the platforms are
power --;// power decreses by 1
}
}
}
onMouseUp = function(){//same as onClipEvent(mouseUp)
placing = false;//sets placing to false
}

this basically means that if the variable placing is true, then a platform will appear at the mouse's x and y, and that you can hold down and drag to place many platforms

HAPPY NOW?????


Song of the Firefly is on Steam Greenlight and Facebook. Give them a look and support the project!
------------------------------

BBS Signature
KougaijiGyumao
KougaijiGyumao
  • Member since: May. 26, 2006
  • Offline.
Forum Stats
Member
Level 08
Blank Slate
Response to AS: Platform Placing Jun. 6th, 2006 @ 02:02 AM Reply

Can this AS work with a non-ball MC? Sorry if it's dumb, but I don't know why it won't work for me...

Kenney
Kenney
  • Member since: Mar. 16, 2002
  • Offline.
Forum Stats
Member
Level 20
Game Developer
Response to AS: Platform Placing Jun. 6th, 2006 @ 02:13 AM Reply

At 6/6/06 02:02 AM, KougaijiGyumao wrote: Can this AS work with a non-ball MC? Sorry if it's dumb, but I don't know why it won't work for me...

Yes ofcourse, it can have any shape.

KougaijiGyumao
KougaijiGyumao
  • Member since: May. 26, 2006
  • Offline.
Forum Stats
Member
Level 08
Blank Slate
Response to AS: Platform Placing Jun. 6th, 2006 @ 02:51 AM Reply

Can you guys help me? I used this AS and I modified some parts, and well... I can't seem to make it work...

Here's the wrong parts in my AS:
onClipEvent(load){
stop(); dir=0;
}
onClipEvent (enterFrame)
{if (Key.isDown(Key.RIGHT))
{_x+=speed; gotoAndStop(2); dir=0;}
else if (Key.isDown(Key.LEFT))
{_x-=speed; gotoAndStop(3); dir=1;}
else if (Key.isDown(Key.17) && dir=1)
{_x-=speed; gotoAndPlay(15); dir=1;}
else if (Key.isDown(Key.17) && dir=0)
{_x-=speed; gotoAndPlay(5); dir=0;}
else { if (dir==0) {gotoAndStop(1);}else{gotoAndStop(4);}
}

KougaijiGyumao
KougaijiGyumao
  • Member since: May. 26, 2006
  • Offline.
Forum Stats
Member
Level 08
Blank Slate
Response to AS: Platform Placing Jun. 6th, 2006 @ 02:53 AM Reply

oops. wrong thread. >_< I was reading this and AS:Movement. T_T egad, please don't BAN me!! >_<

TehBoss
TehBoss
  • Member since: Apr. 11, 2007
  • Offline.
Forum Stats
Member
Level 14
Programmer
Response to AS: Platform Placing Sep. 9th, 2008 @ 07:52 PM Reply

At 5/1/06 02:33 PM, Hoeloe wrote: wot is FOSS?

Free Open Source Software, like the source engine for Half Life 2.


AS: Main || AS3: Main || <-- Useful links.