Avatar billede Slettet bruger
12. marts 2003 - 09:24 Der er 18 kommentarer og
1 løsning

Fast mur (igen men ikke helt det samme)

jeg er stadig igang med et rpg spil, men jeg har visse ting som man ikke skal kunne gå ovenpå, så hvordan ligger jeg en fast mur rundt om noget, sådan at man ikke kan komme videre?
Avatar billede pyroman Nybegynder
12. marts 2003 - 10:48 #1
Hej igen...

De ting man ikke skal kunne gå igennem laver du som MC'er, hvorpå du sætter dette script:

onClipEvent(enterFrame){
  if(this.hitTest(_root.minMand)){
    if(_root.direction == "left"){
      _root.minMand._x += _root.moveSpeed;
    }else if(_root.direction == "right"){
      _root.minMand._x -= _root.moveSpeed;
    }else if(_root.direction == "up"){
      _root.minMand._y += _root.moveSpeed;
    }else if(_root.direction == "down"){
      _root.minMand._y -= _root.moveSpeed;
    }
  }
}

Du skal så lave lidt om på din styring af din mand:

onClipEvent (load) {
  _root.moveSpeed = 19;
}
onClipEvent (enterFrame) {
  if (Key.isDown (Key.RIGHT)) {
    _root.direction = "right";
  } else if (Key.isDown (Key.UP)) {
    _root.direction = "up";
  } else if (Key.isDown (Key.DOWN)) {
    _root.direction = "down";
  } else if (Key.isDown (Key.LEFT)) {
    _root.direction = "left";
  }
  if(_root.direction == "left"){
    _x -= _root.moveSpeed;
  }else if(_root.direction == "right"){
    _x += _root.moveSpeed;
  }else if(_root.direction == "up"){
    _y -= _root.moveSpeed;
  }else if(_root.direction == "down"){
    _y += _root.moveSpeed;
  }
}

/Filip
Avatar billede Slettet bruger
12. marts 2003 - 11:26 #2
okay, hvordan skal:
onClipEvent (load) {
    speed = 15;
    xMax = 550;
        yMax = 400;
        xMin = yMin = 0;
 
}
onClipEvent (enterFrame) {
    if (Key.isDown(Key.RIGHT)) {
        this._x += speed;
    }
    if (Key.isDown(Key.LEFT)) {
        this._x -= speed;
    }
    if (Key.isDown(Key.UP)) {
        this._y -= speed;
    }
    if (Key.isDown(Key.DOWN)) {
        this._y += speed;
    }
    ////////////////////////////
    if (this._x - (this._width/2) > xMax) {
        this._x = xMin - (this._width/2);
    }
    else if (this._x + (this._width/2) < xMin) {
        this._x = xMax + (this._width/2);
    }
    ////////////////////////////
    if (this._y - (this._width/2) > yMax) {
        this._y = yMin - (this._width/2);
    }
    else if (this._y + (this._width/2) < yMin) {
        this._y = yMax + (this._width/2);
    }
}

som er den kode på min mand jeg har nu blandes sammen med det nye? jeg skal nemlig have det med at den kommer ud og ind af skærmen (hvis du ved hvad jeg mener) med
Avatar billede pyroman Nybegynder
12. marts 2003 - 11:46 #3
Der er ret let - bagefter alt det andet...

onClipEvent (load) {
  _root.moveSpeed = 19;
  xMax = 550;
  yMax = 400;
  xMin = yMin = 0;
}
onClipEvent (enterFrame) {
  //registrerer tryk på knapper og sætter retningen
  if (Key.isDown (Key.RIGHT)) {
    _root.direction = "right";
  } else if (Key.isDown (Key.UP)) {
    _root.direction = "up";
  } else if (Key.isDown (Key.DOWN)) {
    _root.direction = "down";
  } else if (Key.isDown (Key.LEFT)) {
    _root.direction = "left";
  }
  //bevæger manden ud fra retnigen
  if(_root.direction == "left"){
    _x -= _root.moveSpeed;
  }else if(_root.direction == "right"){
    _x += _root.moveSpeed;
  }else if(_root.direction == "up"){
    _y -= _root.moveSpeed;
  }else if(_root.direction == "down"){
    _y += _root.moveSpeed;
  }
  //Sørger for at flytte til nyt kort hvis man går uden for skærmen
  if (this._x - (this._width/2) > xMax) {
    this._x = xMin - (this._width/2);
  }
  else if (this._x + (this._width/2) < xMin) {
    this._x = xMax + (this._width/2);
  }
  ////////////////////////////
  if (this._y - (this._width/2) > yMax) {
    this._y = yMin - (this._width/2);
  }
  else if (this._y + (this._width/2) < yMin) {
    this._y = yMax + (this._width/2);
  }
}

Så nu burde der ikke være nogle problemer vel? : )
Avatar billede Slettet bruger
12. marts 2003 - 11:56 #4
stort problem: den rykker ikke en tak af gangen den bliver ved med at rykke automatisk... kan man ikke lave det der script til muren så det passer til det andet?
Avatar billede pyroman Nybegynder
12. marts 2003 - 12:01 #5
Jamen den stopper ikke når den er nået ud af MC'et? Det lyder mærkeligt!
Avatar billede Slettet bruger
12. marts 2003 - 12:11 #6
altså det virker fint nok, men jeg vil ikke have at den bare kører der ud af ved et tryk på knappen
Avatar billede pyroman Nybegynder
12. marts 2003 - 12:16 #7
Nåh ja det havde jeg lige overset - at den skulle stoppe igen - undskyld.
I slutningen af alt det her du har på din mand, så skriver du bare(stadig indenfor clipEvent-klammerne:

_root.direction = "none";

Virker det nu?
Avatar billede Slettet bruger
12. marts 2003 - 12:25 #8
så virker muren ikke
Avatar billede Slettet bruger
12. marts 2003 - 12:26 #9
det ville være bedst hvis du gad/kunne lave den til den kod ejeg allerede havde
Avatar billede pyroman Nybegynder
12. marts 2003 - 14:28 #10
Okay nu kommer det hele igen...

onClipEvent (load) {
  _root.moveSpeed = 19;
  xMax = 550;
  yMax = 400;
  xMin = yMin = 0;
}
onClipEvent (enterFrame) {
  //registrerer tryk på knapper og sætter retningen
  if (Key.isDown (Key.RIGHT)) {
    _root.direction = "right";
  } else if (Key.isDown (Key.UP)) {
    _root.direction = "up";
  } else if (Key.isDown (Key.DOWN)) {
    _root.direction = "down";
  } else if (Key.isDown (Key.LEFT)) {
    _root.direction = "left";
  }
  //bevæger manden ud fra retnigen
  if(_root.direction == "left"){
    _x -= _root.moveSpeed;
  }else if(_root.direction == "right"){
    _x += _root.moveSpeed;
  }else if(_root.direction == "up"){
    _y -= _root.moveSpeed;
  }else if(_root.direction == "down"){
    _y += _root.moveSpeed;
  }
  //Sørger for at flytte til nyt kort hvis man går uden for skærmen
  if (this._x - (this._width/2) > xMax) {
    this._x = xMin - (this._width/2);
  }
  else if (this._x + (this._width/2) < xMin) {
    this._x = xMax + (this._width/2);
  }
  ////////////////////////////
  if (this._y - (this._width/2) > yMax) {
    this._y = yMin - (this._width/2);
  }
  else if (this._y + (this._width/2) < yMin) {
    this._y = yMax + (this._width/2);
  }
  _root.direction = "none";
}

Kan du se hvor den er? Når der ikke trykkes på knappen sættes 'direction' til ingen betydelig ting og din mand bevæger sig derfor ikke : )
Avatar billede Slettet bruger
12. marts 2003 - 17:57 #11
Kommentar: saxe
12/03-2003 12:25:03    så virker muren ikke (!)
Avatar billede Slettet bruger
13. marts 2003 - 10:20 #12
har du droppet det?
Avatar billede pyroman Nybegynder
13. marts 2003 - 18:15 #13
nej nej, men jeg sidder desværre ikke på eksperten 24 timer i døgnet - jeg har dog et liv.
Ja jeg kan godt se at det ikke virker, jeg tænkte mig ikke om.
Det er nu scriptet på din mur der skal laves lidt om:

onClipEvent(enterFrame){
  if(this.hitTest(_root.minMand)){
    if(Key.isDown(Key.LEFT)){
      _root.minMand._x += _root.moveSpeed;
    }else if(Key.isDown(Key.RIGHT)){
      _root.minMand._x -= _root.moveSpeed;
    }else if(Key.isDown(Key.UP){
      _root.minMand._y += _root.moveSpeed;
    }else if(Key.isDown(Key.DOWN)){
      _root.minMand._y -= _root.moveSpeed;
    }
  }
}

Virker det nu?
Avatar billede Slettet bruger
13. marts 2003 - 22:41 #14
ja ja, det var ikke kritik over dit "fravær" undrede mig bare, for jeg så dig besvare andre spørgsmål
Avatar billede Slettet bruger
13. marts 2003 - 22:44 #15
okay, men hvordan bestemmer jeg hvor stort området omkring muren skal være? og kan jeg gøre sådan at min person også kan gå skråt (det skal jeg bruge i mit spil nemlig)
Avatar billede mat Nybegynder
13. marts 2003 - 23:35 #16
din person kan gå skråt hvis du dropper alle de der else ifs, i styringsscriptet, og bruger ifs istedet som jeg havde gjort i den kode jeg gav dig oprindeligt :)
Avatar billede Slettet bruger
14. marts 2003 - 08:25 #17
okay, det kan jeg ikke få til at virke men det vigtigste er også at jeg selv kan bestemme størrelsen på muren, altså hvor meget den skal gå rundt om mit objekt, for den skal have en helt bestemt størrelse
Avatar billede pyroman Nybegynder
17. marts 2003 - 19:17 #18
Okay weekenden er ovre og jeg kan igen kigge lidt på dit problem, hvis du altså stadigvæk ikke kan få det til at virke. Du må egentlig meget gerne sende det til min email filip@desi-dev.dk , så bliver det lidt lettere for mig at se hvad der er galt. Jeg vil kommentere begrundelsen her på exp.
Avatar billede Slettet bruger
15. april 2003 - 00:16 #19
jeg lukker, da jeg helt havde glemt mit spg. og jeg ikke fik det til at virke
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester