Crear Flechas

Ante todo agradecerte tus respuestas y tu la rapidez en contestarlas.
Estoy haciendo un juego de relacionar unas palabras con otras, pero no tengo muy claro que planteamiento debo seguir. Las palabras se tienen que relacionar entre ellas con flechas, estoy entre dos opciones:
La primera seria crear flechas para todas las posibilidades que pueda escoger el jugador, o sea, si tengo 7 palabras que se tienen que relacionar con otras 7 son un total de 49 flechas. Esta opción es la que menos me gusta.
La segunda opción seria mediante lingo crear flechas(que no tengo ni idea de cómo hacerlo) donde la primera palabra que escoja el jugador sea el punto por, y del inicio de la flecha y la segunda palabra seria el punto por, y del final de la flecha.
Personalmente prefiero esta última, pero como te he dicho no tengo ni idea de cómo hacerlo.
1

1 Respuesta

252.550 pts.
Este behaviour esta completo para que un juegos de parejas:
Property ppos, prutina, psprite, plista
Property pdes
Property pOrig
property p_bloq
on getPropertyDescriptionList me
lista = [:]
setaProp lista, #psprite, [#comment: "en que canal esta el sprite bueno", #format: #integer, \
#default: 3]
setaProp lista, #plista, [#comment: "en que canal estan los posibles sprites", #format: #lista, \
#default: [2,3]]
setaProp lista, #prutina, [#comment: "indica la rutina que aparece al encontrarse los dos sprites", #format: #string, \
#default: "rutina()"]
return lista
end getPropertyDescriptionList
on beginSprite me
pOrig = sprite(me.spriteNum).loc
ppos = FALSE
p_bloq = FALSE
end
on mouseDown me
if p_bloq = TRUE then exit
ppos = TRUE
pdes = sprite(me.spriteNum).loc - the mouseLoc
end
on mouseUp me
ppos = FALSE
comprobar(me)
end
on mouseUpOutside me
ppos= FALSE
comprobar(me)
end
on prepareFrame me
if ppos then
sprite(me.spriteNum).loc = the mouseLoc + pdes
end if
end
on comprobar me
repeat with i=1 to plista.count
p=plista
if distancia(me, sprite(p).loc,sprite(me.spriteNum).loc) then
sprite(me.spriteNum).loc = sprite(p).loc
if sprite(me.spriteNum).loc = sprite(psprite).loc then
p_bloq=true
do prutina
else
nothing
end if
exit
end if
end repeat
sprite(me.spritenum).loc = pOrig
end
on distancia me, loc1, loc2
maxi =20
if abs(loc1.locH - loc2.locH) < maxi then
if abs(loc1.locV - loc2.locV) < maxi then
return TRUE
end if
end if
return FALSE
end
Otra cosa. Estoy haciendo un juego y me interesa utilizar un Field para que el jugador ponga su nombre (que el field no acepte ninguna tecla que no sean letras). El nombre que se utilice se tiene que guardar junto con su puntuación y que cuando regrese a jugar otro día se pueda recuperar.
Tengo creada una lista de propiedades pero no consigo que cuando el jugador regrese pueda comprobar que el jugador existe y así poder recuperar su puntuación.
on mouseUp
jugador1=(member("Camp Nom").text)
jugador = symbol(member("Camp Nom").text)
if jugadors.getone(jugador) <> 0 then -comprueba que no existe en caso de que si exista tiene que recuperar el nombre y su puntuación
go "menu"
??????
else - Si no existe lo crea y le da puntuacion 0
go "menu"
jugadors.addProp(jugador, 0)
member("Nom").text = jugador1
member("Puntuacio").text = "0"
dificultat = 1
end if
end
Muchas gracias por todo
Lo de las letras lo puedes sacar de aquí:
On startmovie
the keydownscript ="puls()"
the exitlock =1
end
on puls
k=the keycode
if k=51 then
borrar()
else
texto=member("texto").text
tecla=string(the keypressed)
valor=chartonum(tecla)
if numeros(valor) then
if tamaño() then
put tecla after texto
member("texto").text=texto
else
member("texto").text=texto
end if
end if
end if
end
on borrar
if member("texto").char.count=1 or member("texto").text="" then
member("texto").text=""
else
repeat with i=1 to member("texto").char.count -1
t=member("texto").char
g=g&t
end repeat
member("texto").text=g
end if
end
on numeros num
--estos son los numeros asscci validos para el castellano
if num>=65 and num<=90 or num>=97 and num<=122 or num=192 or num=204 or num=200 or num=210 or num=217 or num=224 or num=232 or num=236 or num=242 or num=249 then
return true
end if
end
on tamaño
if member("texto").char.count<7 then
return true
end if
end
Para la información usa el fileio:
el fileio que te viene con director maneja fircheros de texto.
Abrir directo.
property p_direccion,p_texto
on getPropertyDescriptionList
lista= [:]
addProp lista, #p_direccion,\
[#comment: "escribe la ruta del archivo",#format:#String,\
#default: "texto.txt" ]
addProp lista, #p_texto, \
[#comment: "elige el texto" ,#format:#text\
,#default:""]
return lista
end getPropertyDescriptionList
on mouseup me
instancia=new(xtra "fileIO")
nombre_archivo=the pathname&p_direccion
if nombre_archivo="" then return FALSE
--esto analiza los errores si se producen
if status(instancia)<>0 then
fallo=error(instancia,status(instancia))
alert ("Se ha poducido un error en la lectura, debe repetir la operaciòn:")
return ""
end if
--Abre el archivo en la memoria para poder trabajar con el
--El tercer parámetro es 1 porque el archivo se abre solo para leer
openfile(instancia, nombre_archivo, 1)
--Se lee el contenido del archivo y se almacena en una variable
texto=readfile(instancia)
--se guarda el contenido de la variable en un texto de director
p_texto.text=texto
--Se borra la instancia
Closefile(instancia)
end
Guardar directo:
property p_direccion,p_texto
on getPropertyDescriptionList
lista= [:]
addProp lista, #p_direccion,\
[#comment: "escribe la ruta del archivo",#format:#String,\
#default: "texto.txt" ]
addProp lista, #p_texto, \
[#comment: "elige el texto" ,#format:#text\
,#default:""]
return lista
on mouseup me
instancia=new(xtra "fileIO")
nombre_archivo=the pathname&p_direccion
--esto analiza los errores si se producen
if status(instancia)<>0 then
fallo=error(instancia,status(instancia))
alert ("Se ha poducido un error en la lectura, debe repetir la operaciòn:")
return ""
end if
--Abre el archivo en la memoria para poder trabajar con el
--El tercer parámetro es 1 porque el archivo se abre solo para grabar
openfile(instancia, nombre_archivo, 2)
--Borra el archivo existente, si es que existiera.
delete(instancia)
--Crea de nuevo ese archivo para poder guardarlo con los nuevos datos
createfile(instancia, nombre_archivo)
--Abre el archivo en la memoria para poder trabajar con el
--El tercer parámetro es 1 porque el archivo se abre solo para grabar
openfile(instancia, nombre_archivo, 2)
--se crea una variable con el texto que se quiere guardar en el archivo txt
texto=p_texto.text
--Escribe dentro del archivo txt
Writestring(instancia, texto)
--Se borra la instancia
Closefile(instancia)
end
Abrir con el navegador:
On getBehaviorTooltip me
return \
"Usa este comportamiento para leer el contenido de un texto externo y colocarlo en un text de director con ayuda del navegador. "&\
return&\
"Comportamiento realizado por bedelludrica: " & \
return&\
"[email protected] "
end getBehaviorTooltip
property p_texto--,p_direccion
on getPropertyDescriptionList
lista= [:]
--
-- addProp lista, #p_direccion,\
--[#comment: "escribe la ruta del archivo",#format:#String,\
--#default: "texto.txt" ]
--
addProp lista, #p_texto, \
[#comment: "elige el texto" ,#format:#text\
,#default:""]
return lista
end getPropertyDescriptionList
on mouseup me
instancia=new(xtra "fileIO")
nombre_archivo=displayopen(instancia)
if nombre_archivo=void then
return FALSE
else
if status(instancia)<>0 then
fallo=error(instancia,status(instancia))
alert ("Se ha poducido un error en la lectura, debe repetir la operaciòn:")
return ""
end if
openfile(instancia, nombre_archivo,1)
texto=readfile(instancia)
closefile(instancia)
p_texto.text=texto
instancia=void
end if
end
guardar on el navegador de window:
on getBehaviorTooltip me
return \
"Usa este comportamiento para guardar el contenido de un text interno de director y colocarlo en un texto externo con la ayuda del navegador. "&\
return&\
"Comportamiento realizado por bedelludrica: " & \
return&\
"[email protected] "
end getBehaviorTooltip
property p_direccion,p_texto,p_t
on getPropertyDescriptionList
lista= [:]
addProp lista, #p_direccion,\
[#comment: "escribe el nombre archivo predeterminado",#format:#String,\
#default: "archivo.fty" ]
addProp lista, #p_t,\
[#comment: "escribe el titulo de la ventana save",#format:#String,\
#default: "bedelludrica" ]
addProp lista, #p_texto, \
[#comment: "elige el texto" ,#format:#text\
,#default:""]
return lista
on mouseup me
instancia=new(xtra "fileIO")
nombre_archivo=displaysave(instancia,p_t,p_direccion)
if nombre_archivo="" then return FALSE
--Abre el archivo en la memoria para poder trabajar con el
--El tercer parámetro es 1 porque el archivo se abre solo para grabar
openfile(instancia, nombre_archivo, 2)
--Borra el archivo existente, si es que existiera.
delete(instancia)
--Crea de nuevo ese archivo para poder guardarlo con los nuevos datos
createfile(instancia, nombre_archivo)
--Abre el archivo en la memoria para poder trabajar con el
--El tercer parámetro es 1 porque el archivo se abre solo para grabar
openfile(instancia, nombre_archivo, 2)
texto=P_TEXTO.text
writestring(instancia,texto)
texto=readfile(instancia)
closefile(instancia)
return true
instancia=void
end
Perdona, pero es que no entiendo muy bien el código de "Este behaviour esta completo para que un juegos de parejas:" ni el de las letras. Me lo podrías traducir linea a linea por favor. El de las letras no entiendo porque hay un controlador para el apartado de Borrar. Aun así lo he probado y la teclas de return funciona, y aparte me duplica las letras cada vez que escribo, he eliminado el "put tecla after texto" y ya no repite. Muchas gracias por todo y perdona las molestias
No te lo puedo traducir linea a linea ni de broma. Yo no vivo de esto. Yo creo que bastante hago. Debes tener en cuanta que llevo un montón de años con esto y el código que he puesto es muy sencillo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas