Avatar billede bronz Nybegynder
15. december 2003 - 18:11 Der er 1 kommentar

Hjælp til Director MX

Jeg er i gang med at konstruere et edutainment spil i Director MX til børn i alderen 6-7 år. Spillet er baseret på de mest basale kundskaber i dansk og regning, dvs. stavning og sammenlægning af tal.

Jeg er i gang med at konstruere en opgave i spillet, hvor der på skærmen fremkommer et antal objekter, fx 4 æbler, og det er så meningen at barnet, ud fra talrækken 0-10 skal trække det korrekte tal ind, dvs. det tal som angiver antallet af objekter der er. Udtrækningen af antallet af objekter har jeg lavet ved en random-funktion, således at det er forskelligt hver gang.
    Barnet skal trække et tal ind i en boks på skærmen, og det er så meningen at det skal kontrolleres om barnets svar er rigtigt.

Hvordan konstruerer jeg noget programmel, som gør at tallene i talrækken falder tilbage i deres faste loc point, når barnet fx har trukket et forkert tal ind, og hvordan konstruerer jeg denne kontrolfunktion af barnets svar?

Endvidere er det kun 10-tallet i talrækken der bliver i boksen, men hvis 10 har intersectet, kan de andre også intersecte. Når tallet 10 flyttes væk fra boksen igen, ryger de andre tal også tilbage i deres loc point.

Koden er:

repeat with i = 25 to 34
if sprite(i).intersects(24) then
spite(i).loc=point(x,y)
else
sprite(25).loc=point(270,240)

sidste linie gentages for hvert tal; sprite 25 indeholder 1-tallet.



På forhånd tak
Avatar billede kanding Nybegynder
16. december 2003 - 09:45 #1
Tallene skal have et script på sig hvor man under start initialiseringen gemmer deres udgangs loc.

Derefter en funktion man kan kalde for at sætte den på plads

Jeg vil foreslå at du sætter en global variabel til dit random nr
gCurrentNum = random(0,10)

hele scriptet skal se således ud. Her bruger jeg heller ikke repeat loop:

property pHomeLoc, pMouseIsDown
global gCurrentNum

on beginSprite me
pHomeLoc = sprite(me.spritenum).loc
end

on reset me
sprite(me.spritenum).loc = pHomeLoc
end

on mouseDown me
pMouseIsDown = true
end

on exitFrame me
if pMouseIsDown then
sprite(me.spriteNum).loc = the mouseLoc
end if
end

on mouseUp me
pMouseIsDown = false
if sprite(me.spriteNum).intersects(24) then
ourNumber = value(sprite(me.spriteNum).member.text)
else
me.reset()
end if

if ourNumber = gCurrentNum then
-- så har vi trukket det rigtige tal
end if
end
Jeg tager for givet at dit tal er i et text member. Hvis det er en bitmap eller lign, så kald det tallet fx. "3". Sp kan du spørge på

sprite(me.spritenum).member.name

Jeg her ikke testet det i director, men skriv tilbage hvis der er noget der driller.
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
Kurser inden for grundlæggende programmering

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