Avatar billede sunstream Nybegynder
27. august 2001 - 12:04 Der er 18 kommentarer og
1 løsning

Slingshot spel ?

Hejsan !

Jag arbetar på ett projekt där vi är igång med att göra ett slangbellespel i samma stil som:

http://www.cartoonnetwork.com/games/sheep_crash/

men jag har lite problem med att förstå hur man ska göra för att få slngbellan att fungera på ungefär samma sätt som i ovannämnda spel...

någon som kan vara supersnäll och hjälpa mej ?!

thnxx !
Avatar billede hoejrup Nybegynder
27. august 2001 - 12:39 #1
Link til matematisk og programmering af en slangebøsse:

http://members.home.net/dimona/

/per
Avatar billede hoejrup Nybegynder
27. august 2001 - 12:41 #2
matematik = matematisk

/per
Avatar billede lingoman Nybegynder
27. august 2001 - 12:50 #3
Hejsan sunstream,

Der er kun 3 punkter A,B,C, i spillet som afgør alle projektil egenskaber.

A og B er elastikkens fastgørelses punkter på slangbellan.
C er projektilen\'s centrum.

Projektil start speed er proportionel med (AC+BC)/AB  >> Vx og Vy
Dette giver dx og dy projektilen skal flyttes med

dx er konstant = Vx
dy er variabel = Vy + g*N^2

N er 0,1,2,3,4,.... og øges i hver enterframe med 1 fra 0.  dette repræsenterer en konstant tids-interval med start værdi 0 når projektilen starter. (mouseUp)

g er en konstant du kan regulere. Den repræsenterer tyngdekraften.

Projektil start direction er linjen mellem C og midtpunktet for AB

I hver enterframe flyttes
projektil._x = projektil._x + dx
projektil._y = projektil._y + dy

Dette giver en \"trajectory\" som er en parabol

mvh geo
Avatar billede sunstream Nybegynder
27. august 2001 - 13:32 #4
Hmmm....det låter jättebra men jag blir ju tvungen och fråga om du eventuellt kunde förklara det lite närmare kanske eventuellt ett scriptexempel ?! :o)

Vi är nämligen under tidspress och allt ska gå så fort som möjligt så.... :oP

Avatar billede hoejrup Nybegynder
27. august 2001 - 13:35 #5
En vektor formel, der beskriver projektilets bane, når du affyre det fra en bestemt vinkel.

link: http://www.rose-hulman.edu/Class/CalculusProbs/Problems/CATAPULT/CATAPULT_6_0_0.html

Men du skal også tage højde for at projektilet skal bevæge sig i Z aksens retning.

/per
Avatar billede lingoman Nybegynder
27. august 2001 - 13:41 #6
Jeg vil meget gerne forklare princippet nærmere men du må selv kunne kode det. Jeg har ikke tænkt mig at lave det for dig, men hjælpe dig med at \"förstå hur man ska göra för att få slngbellan att fungera på ungefär samma sätt som i ovannämnda spel...\"

Vad er det som du fortfarande inte førstår ?

Avatar billede sunstream Nybegynder
27. august 2001 - 13:58 #7
Jag förstår det i princip i teorin så du får ha lite tålamod med mej :o)

Oki...jag har alltså 1 grafik (mc) som är själva slangbellan, 1 grafik (mc) som är projektilen och 1 grafik som är själva gummibandet. Jag antar att jag också ska ha 3 mc\'s som är A, B, och C punkterna som nämnt ovan, eller är det enbart variablar ?!

hmmm...det känns som om jag är nybörjare igen :oP







Avatar billede sunstream Nybegynder
27. august 2001 - 14:06 #8
Det kanske är lättare att disskutera det här över icq om du har det ?!

UIN : 122615095

:o)
Avatar billede lingoman Nybegynder
27. august 2001 - 14:27 #9
Does this make sense to you?

1 MC slangbellan
2 MC\'s gummibandet
1 MC projektil (midtpunktet er C)

Midtpunktet mellem A og B kalder vi D

length CD / length AB  = speed  , Vx og Vy

//projektil MC

onClipEvent(enterframe) {

g = 1    // adjust to fit your needs
N = N + 1 // increment time

dx = Vx
dy = Vy + g * N

ProjektilSkala = 100.0 / N

this._x =  this._x + dx
this._y =  this._y + dy
this._xscale = ProjektilSkala
this._yscale = ProjektilSkala

}


regards,

george


Avatar billede lingoman Nybegynder
27. august 2001 - 14:38 #10
dx = horizontal distance travelled in a unit time interval
dy = vertical distance travelled in a unit time interval
ProjektilSkala = 100.0 / (N+1) allows N = 0
Avatar billede sunstream Nybegynder
28. august 2001 - 10:37 #11
oki...jag har suttit och bixat med scriptet och kommit fram till följande:

---//Scene 1, frame 1 actions//---

stop ();
ini();
function ini () {
    trace (\"...ini...\");
    N = 0;
    projektil._visible = false;
    shooting = false;
    gummivx = slangbella.gummiV._x;
    gummivy = slangbella.gummiV._y;
    gummihx = slangbella.gummiH._x;
    gummihy = slangbella.gummiH._y;
    centerx = (gummihx-gummivx)/2+gummivx;
    slangbella.dragdimps._x = centerx;
    slangbella.dragdimps._y = slangbella.gummiV._y;
    projektil._x = slangbella.dragdimps._x+slangbella._x;
    projektil._y = slangbella.gummiV._y+slangbella._y;
    // slangbella.gummiV._rotation = 90 ;
    gummiVendx = centerx-(slangbella.dragdimps._width/2);
    gummiHendx = centerx+(slangbella.dragdimps._width/2);
    slangbella.gummiV._width = gummiVendx-gummivx;
    slangbella.gummiH._width = gummihx-gummiHendx;
    // trace (projektil._x);
    // trace (centerx);
    // trace (slangbella.dragdimps._x);
}
// dragfunktion
function drag () {
    startDrag (slangbella, true);
    setProperty (\"slangbella\", _x, \"_xmouse\");
    setProperty (\"slangbella\", _y, \"_ymouse\");
}
// skjutfunktion
function shoot () {
    //trace (projektil._x);
    N = 0;
    shooting = true;
    projektil._visible = true;
    trace (\"..shoot..\");
}
// uppdaterar projektilens bana i enterframe mode
function shootupdate () {
    g = 1;
    N = N+1;
    dx = centerx+slangbella._x;
    dy = Vy+g*N ;
    ProjektilSkala = 100.0/N+1;
    projektil._x = dx;
    projektil._y += (dy*2);
    projektil._xscale = ProjektilSkala;
    projektil._yscale = ProjektilSkala;
    if (N>10) {
        shooting = false;
        shootstop();
        trace (\"muffe\");
    }
}
// reset slangbellans dragdimps
function slangbellereset () {
    slangbella.dragdimps._x = centerx;
    slangbella.dragdimps._y = slangbella.gummiV._y;
    shoot();
}
// stoppa projektilen från enterframe mode
function shootstop () {
    N = 0;
    shooting = false;
    projektil._visible = false;
    drag();
    projektil._x = slangbella.dragdimps._x+slangbella._x;
    projektil._y = slangbella.gummiV._y+slangbella._y;

}

---//slangbellans actions//---

onClipEvent (load) {
        startDrag (this, true);
}
onClipEvent (mouseDown) {
    startDrag (dragdimps, true, _parent.centerx, dragdimps._y, _parent.centerx, dragdimps._y+100);
}
onClipEvent (mouseUp) {
    stopDrag ();
    //_parent.shoot();
    _parent.slangbellereset();
}

---//projektilens actions//---

onClipEvent (enterFrame) {
if (_parent.shooting == true) {
        _parent.shootupdate();
    }
}


den skjuter väg projektilen det verkar som om det fungerar...men......hur får jag elastiken till att bli elastisk och hur får jag projektilen till att gå i en uppåtgående bana... ?! :oP




Avatar billede sunstream Nybegynder
28. august 2001 - 14:22 #12
exempel finns på följande adress...

http://medlem.tripodnet.nu/sunstream/index.html


don\'t mind the grafics please :o)
Avatar billede lingoman Nybegynder
28. august 2001 - 16:16 #13
Vy måste vara negativ från børgan om protektilen ska uppåt.

Kan you zipp your fla for my download, then I shall make it elastic.

Or send it to me ... geo@lingoman.dk
Avatar billede sunstream Nybegynder
28. august 2001 - 17:08 #14
okismoki !

jag har skickat den till din mejl...

thnxx a million mahn !
Avatar billede lingoman Nybegynder
29. august 2001 - 13:18 #15
Jeg kigger på det når jeg kommer hjem
mvh geo
Avatar billede hoejrup Nybegynder
29. august 2001 - 14:40 #16
Må vi godt se det færdige resultat?

/per
Avatar billede lingoman Nybegynder
29. august 2001 - 16:22 #17
hoejrup>Jeg vil natuligvis også poste det her på eksperten :)
Avatar billede hoejrup Nybegynder
29. august 2001 - 20:40 #18
lingoman> Det er helt naturligt at poste resultatet på eksperten, for det står nemlig i reglerne.

/per
Avatar billede hoejrup Nybegynder
09. september 2001 - 14:48 #19
Hvornår kommer der en løsning?

/per
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