Welcome!
This is the community forum for my apps Pythonista and Editorial.
For individual support questions, you can also send an email. If you have a very short question or just want to say hello — I'm @olemoritz on Twitter.
Script crashes after 20 seconds
-
When I try to run this script and I have a print action in the update function it crashes after ~20 seconds of normal functioning.
When I remove the print action it doesn’t crash but without a print it is really hard to do debugging.Sorry for very messy code
from scene import * #import sound import random import math import Funcs import logging #import sleep A = Action class MyScene (Scene): def draw(self): pass def setup(self): self.view.update_interval = 1 #print(get_screen_size()) self.squares = {} self.states_all = {} self.square_number = 0 self.x,self.y = 0,0 self.x_max_numbers = [] self.all_numbers = [] while self.y < (get_screen_size()[1] - 400): self.square = SpriteNode('shp:Circle') self.square.color = '#000000' self.square.size = 100,100 self.square.position = self.x,self.y self.add_child(self.square) self.x += 100 if self.x > get_screen_size()[0] - 400: self.x_max_numbers.append(self.x) self.x = 0 self.y += 100 self.squares.update({self.square_number:self.square}) self.states_all.update({str(self.square):0}) #lol# self.all_numbers.append(self.square_number) self.square_number += 1 self.x_max = max(self.x_max_numbers) self.mesh = {} for num in range(self.square_number): meshes = Funcs.finding(num,int(self.x_max / 100),self.square_number - 1,self.y) self.mesh.update({num:meshes}) #exit(self.mesh) #print(self.square.children) self.fram = 0 self.pause_mode = False self.pause = SpriteNode('iow:ios7_star_256') self.pause.scale = 0.5 self.pause.position = (get_screen_size()[0] / 2), 800 #(get_screen_size()[1] - self.pause.size[1]) self.add_child(self.pause) print(self.all_numbers) print('serup fertig') #-------------------------------------------------------------------------------------------------------------------- def update(self): #for touch in self.touches.values(): #self.fram += 1 #print(self.fram) #print('update') squares = self.squares mesh = self.mesh square_number = self.square_number states_all = self.states_all #print(6) all_numbers = self.all_numbers for curent_cell in self.all_numbers: #print(curent_cell) #print(states_all) if self.pause_mode == False: #print(6) curent_cell_obj = self.squares[curent_cell] nachbarn = self.mesh[curent_cell] Anzahl_lebend = 0 Anzahl_Tot = 0 for nachbar in nachbarn: logging.log(10,'hi') state_square = self.squares[nachbar] #print(state_square) state_now = self.states_all[str(state_square)] if state_now == 1: Anzahl_lebend += 1 if state_now == 0: Anzahl_Tot += 1 alive = True if Anzahl_lebend < 2 or Anzahl_lebend > 3: alive = False if Anzahl_lebend == 2 or Anzahl_lebend == 3: alive = True # if alive == True: # self.states_all[str(curent_cell_obj)] = 1 #curent_cell_obj.color = '#ffffff' #else: #self.states_all[str(curent_cell_obj)] = 0 #curent_cell_obj.color = '#000000' #print(Anzahl_lebend) #print(Anzahl_Tot) print(Anzahl_lebend) #Scene.setup(self) def touch_began(self, touch): for obj in self.squares.values(): print('touched') if touch.location in obj.bbox: #print(obj.color) if obj.color != (0.0, 0.0, 0.0, 1.0): obj.color = '#000000' self.states_all[obj] = 0 else: #print('war nicht ') obj.color = '#ffffff' self.states_all[obj] = 1 if touch.location in self.pause.bbox: if self.pause_mode == False: self.pause_mode = True else: self.pause_mode = False def touch_moved(self, touch): pass def touch_ended(self, touch): pass run(MyScene(), show_fps=True) ```
-
@Luxi I wanted to try your code but what is Funcs?
Comment your print('touched')
Your crash comes from too much prints -
A better way to do debugging would be to have a TextNode that you can use to feed text to. Or otherwise change something in the display (e.g, add a shapenode circle that shows up when touched, moves with your finger, and goes away when released). You can add TextNodes that move with each of your other nodes that show the coordinates or other debugging info. And so on.
Print is a strange one because it both tries to print to a TextNode built into the scene, but it also tries to print to the console if memory serves.