Cita de: tincopasan en 17 Mayo 2016, 01:44 AM
no uso ni por casualidad codeskulptor por varios motivos, pero viendo lo que intentas hacer y ya que:Código (python) [Seleccionar]
canvas.draw_text(str(oracion), posicion, 30, "skyblue")
evidentemente el primer argumento debe ser una cadena que estás manejando en la función update, al hacer split da como resultado una lista, deberías dentro de la función declarar por ejemplo:Código (python) [Seleccionar]
oracion = oracion[0]
y de esa forma obtener la primer palabra de la lista, el resto ya es por tu cuenta.
Hola tincopasan
gracias por tu respuesta pero la verdad o estoy tapado o no se que estoy pensando
e intentado hacer de varias formas pero la unica que me resulta es creando varias variables, varias posciones, y varios canvas
pero el detalle esta es que es limitado a la cantidad de palabras (ejemplo puedo colocar para 7 palabras) pero si la oracion lleva mas de las 7 palabras quedaria por fuera
la otra que se me ocurrio es usar un for dentro de la funcion update
http://www.codeskulptor.org/#user41_WV9ue6w9Fj_1.py
__________________________________
import simplegui
import random
oracion = ""
palabras = ""
position = [50, 50]
width = 500
height = 500
interval = 800
def update(texto):
global oracion
global palabras
oracion = texto.split()
for palabras in oracion:
return palabras
def tick():
x = random.randrange(0, width)
y = random.randrange(0, height)
position[0] = x
position[1] = y
def draw(canvas):
canvas.draw_text(str(palabras), position, 36, "skyblue")
frame = simplegui.create_frame("Home", width, height)
texto = frame.add_input("Escriba su oracion:", update, 150)
frame.set_draw_handler(draw)
timer = simplegui.create_timer(interval, tick)
frame.start()
timer.start()
___________________________________
pero igual me sigue mandando 1 sola palabra de la oracion el resto no
la verdad ya ni se que hacer, llevo 2 dias en esto jaja
Gracias de nuevo por tu respuesta