How to return deleted objects DragGroup?
Posted: Tue Oct 09, 2018 5:08 pm
Hi
I have a code in which when dragging a thing to a certain place, this thing, to hide itself from the screen, is removed across .remove(child) from DragGroup()
There is also a function by which is determined what exactly should be dragging and therefore retire, when I start it, I have to add all the elements to the screen using across .add (child)
When I first call this function everything works fine, but when I try to call the function a again I get this error:
And I call this:
And she gets out only on those items that were previously removed.
How to fix this problem? In the Internet there is nothing on this subject(
P.S.
Forgive me for my English - this is not my native language.
I have a code in which when dragging a thing to a certain place, this thing, to hide itself from the screen, is removed across .remove(child) from DragGroup()
Code: Select all
def fruit(drags, drop):
global karzina_pl, karzina_srav, prav_list, p
if not drop:
drags[0].snap(pos_f[int(drags[0].drag_name.split("-")[0])][0], pos_f[int(drags[0].drag_name.split("-")[0])][1], delay=0.1)
return
else:
print (karzina_pl, karzina_srav, prav_list)
if str(drags[0].drag_name.split("-")[1]) in prav_list:
stall.remove(drags[0])
karzina_pl.append(drags[0].drag_name.split("-")[2])
karzina_srav.append(drags[0].drag_name.split("-")[1])
for k in karzina_srav:
if (k in prav_list) and (len(karzina_srav) == len(prav_list)):
remove_drags()
karzina_srav = []
prav_list = []
p = 1
stall.add(apple)
# stall.add(pear)
# stall.add(banana)
# stall.add(melon)
stall.add(cherry)
stall.add(basket)
return True
else:
p += 1
if p >= p_max:
renpy.jump("noob")
else:
return
Code: Select all
def add_drags():
global spis, stall
stall.add(apple)
stall.add(pear)
stall.add(banana)
stall.add(melon)
stall.add(cherry)
stall.add(basket)
def zapros(item1=None, item2=None, item3=None, item4=None, item5=None):
global prav_list, vsego_slovar, spis_func, stall
prav_list = []
spis_func = [item1, item2, item3, item4, item5]
for i in spis_func:
if i != None:
for what in vsego_slovar.keys():
if i.title() == what.title(): ## Compare the entered values with a common dictionary
prav_list.append(vsego_slovar[i]) ## Add our items to the final customer list
print (vsego_slovar[i])
add_drags()
Code: Select all
I'm sorry, but an uncaught exception occurred. While running game code: File "game/script.rpy", line 243, in script call screen producti File "renpy/common/000statements.rpy", line 519, in execute_call_screen store._return = renpy.call_screen(name, *args, **kwargs) ZeroDivisionError: float division by zero -- Full Traceback ------------------------------------------------------------ Full traceback: File "game/script.rpy", line 243, in script call screen producti File "C:\Users\Администратор\Desktop\Программы\Renpy\renpy-7.0.0-sdk\renpy\ast.py", line 1828, in execute self.call("execute") File "C:\Users\Администратор\Desktop\Программы\Renpy\renpy-7.0.0-sdk\renpy\ast.py", line 1816, in call return renpy.statements.call(method, parsed, *args, **kwargs) File "C:\Users\Администратор\Desktop\Программы\Renpy\renpy-7.0.0-sdk\renpy\statements.py", line 177, in call return method(parsed, *args, **kwargs) File "renpy/common/000statements.rpy", line 519, in execute_call_screen store._return = renpy.call_screen(name, *args, **kwargs) File "C:\Users\Администратор\Desktop\Программы\Renpy\renpy-7.0.0-sdk\renpy\exports.py", line 2710, in call_screen rv = renpy.ui.interact(mouse="screen", type="screen", roll_forward=roll_forward) File "C:\Users\Администратор\Desktop\Программы\Renpy\renpy-7.0.0-sdk\renpy\ui.py", line 287, in interact rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs) File "C:\Users\Администратор\Desktop\Программы\Renpy\renpy-7.0.0-sdk\renpy\display\core.py", line 2649, in interact repeat, rv = self.interact_core(preloads=preloads, trans_pause=trans_pause, **kwargs) File "C:\Users\Администратор\Desktop\Программы\Renpy\renpy-7.0.0-sdk\renpy\display\core.py", line 3132, in interact_core self.draw_screen(root_widget, fullscreen_video, (not fullscreen_video) or video_frame_drawn) File "C:\Users\Администратор\Desktop\Программы\Renpy\renpy-7.0.0-sdk\renpy\display\core.py", line 2055, in draw_screen renpy.config.screen_height, File "render.pyx", line 485, in renpy.display.render.render_screen File "render.pyx", line 233, in renpy.display.render.render File "C:\Users\Администратор\Desktop\Программы\Renpy\renpy-7.0.0-sdk\renpy\display\layout.py", line 717, in render surf = render(child, width, height, cst, cat) File "render.pyx", line 145, in renpy.display.render.render File "render.pyx", line 233, in renpy.display.render.render File "C:\Users\Администратор\Desktop\Программы\Renpy\renpy-7.0.0-sdk\renpy\display\layout.py", line 717, in render surf = render(child, width, height, cst, cat) File "render.pyx", line 145, in renpy.display.render.render File "render.pyx", line 233, in renpy.display.render.render File "C:\Users\Администратор\Desktop\Программы\Renpy\renpy-7.0.0-sdk\renpy\display\layout.py", line 717, in render surf = render(child, width, height, cst, cat) File "render.pyx", line 145, in renpy.display.render.render File "render.pyx", line 233, in renpy.display.render.render File "C:\Users\Администратор\Desktop\Программы\Renpy\renpy-7.0.0-sdk\renpy\display\screen.py", line 669, in render child = renpy.display.render.render(self.child, w, h, st, at) File "render.pyx", line 145, in renpy.display.render.render File "render.pyx", line 233, in renpy.display.render.render File "C:\Users\Администратор\Desktop\Программы\Renpy\renpy-7.0.0-sdk\renpy\display\layout.py", line 717, in render surf = render(child, width, height, cst, cat) File "render.pyx", line 145, in renpy.display.render.render File "render.pyx", line 233, in renpy.display.render.render File "C:\Users\Администратор\Desktop\Программы\Renpy\renpy-7.0.0-sdk\renpy\display\layout.py", line 717, in render surf = render(child, width, height, cst, cat) File "render.pyx", line 145, in renpy.display.render.render File "render.pyx", line 233, in renpy.display.render.render File "C:\Users\Администратор\Desktop\Программы\Renpy\renpy-7.0.0-sdk\renpy\display\dragdrop.py", line 458, in render done = (at - self.at) / (self.target_at - self.at) ZeroDivisionError: float division by zero Windows-7-6.1.7601-SP1 Ren'Py 7.0.0.196 Drag&Drop 1.0 Tue Oct 09 23:28:02 2018
Code: Select all
stall = DragGroup()
apple = Drag(
drag_name = "0-apple-Apple",
d = "apple.png",
droppable = False,
dragged = fruit,
pos = (pos_f[0][0], pos_f[0][1])
)
pear = Drag(
drag_name = "1-pear-Pear",
d = "pear.png",
droppable = False,
dragged = fruit,
xpos =pos_f[1][0],
ypos =pos_f[1][1]
)
banana = Drag(
drag_name ="2-banana-Banana",
d = "banana.png",
droppable =False,
dragged =fruit,
xpos =pos_f[2][0],
ypos =pos_f[2][1]
)
melon = Drag(
drag_name ="3-melon-Melon",
d = "melon.png",
droppable =False,
dragged= fruit,
xpos =pos_f[3][0],
ypos= pos_f[3][1]
)
cherry = Drag(
drag_name= "4-cherry-cherry",
d = "cherry.png",
droppable= False,
dragged= fruit,
xpos= pos_f[4][0],
ypos =pos_f[4][1]
)
## Dropped
basket = Drag(
drag_name ="basket",
d = "basket.png",
draggable = False,
xpos= 450,
ypos =140
)
Code: Select all
screen producti:
add "menu.jpg"
add stall
label start:
$ zapros("Pear", "Banana", "Melon")
"[prav_list]" ## We check that we set everything correctly
call screen producti
$ karzz = " ".join(karzina_pl) ## Displaying list items
"In our basket [karzz]."
$ zapros("Pear", "Banana", "Melon")
call screen producti
How to fix this problem? In the Internet there is nothing on this subject(
P.S.
Forgive me for my English - this is not my native language.