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.
Add emoji behind text
-
@sodoku good luck with your project
-
if 'LabelNode' in str(type(child2.children[0]))
-->
if isinstance(child2.children[0], LabelNode)
?? -
@ccc I knew it, you have already adviced me, but I had forgotten 😢
-
-
Stick with @cvp code that works.
-
I don’t know if my next question I got for you can be solved, okay so I have added @cvp’s code to mine and it works perfectly, except for the undo and redo functions have now become a little glitchy (not working perfectly), I was wondering if it’s possible to fix this or not??
-
i have no idea whats going on here 😂 but since we are dealing with two separate instances of scene could giving time by
Action.wait(0.5)
(some arbitrary value) or eventime.sleep(0.5)
to inssure processes have time to sync? to help the new found "glitching"?just a guess im only recently getting into threads and processes..
-
The only work around I can think of is limiting only page 1 to have the add emoji input, and undo, and redo while removing those three actions from page 2 to kinda make it idiot/fool proof so the functions undo and redo doesn’t glitch, and users won’t get confused and ruin the order of operations
So basically add emoji, undo and redo would only be available on page 1 and then page 2 would just be a viewable screen to observe then you would have to go back to page 1 to add, undo or redoExcept that would kinda hinder the game play by adding to much unnecessary steps to manually back track, and it would ruin the experience and point of being an app that saves time
I hope this could be fixed that would make this app seem more professional
-
@sodoku if we are dealing with paging.. why not get rid of buttons, and use gestures? should fix current issue and increase time saved for user?
-
The thing is i understand the problem I’m encountering, and the main objective and goal I want to achieve, I just have no clue how to code the solution or if it’s even possible to code a solution, at this level of of coding it’s to easy to make a mistake and not code the proper order of operations
I just know how to ask the smarter people the question, is it possible to fix this problem
-
i know you guys are already this far and i hate to ask people to repeat themselves but im really interested in this situation. if you dont mind can you elaborate on the program and issue?
-
-
@sodoku still dirt and unprofessional, but works for one undo/redo cross pages, but not for successive undo/redo
from scene import * import ui #import time import scene import console gen_evol = [] gen_current_evol = 0 class MainMenuScene (Scene): def setup(self): self.background = SpriteNode(color = 'blue') self.background.size = self.size self.background.position = self.size / 2 self.add_child(self.background) self.page1=LabelNode('page1') self.page1.size=(75,75) self.page1.position=(44,860) self.add_child(self.page1) self.page2=LabelNode('page2') self.page2.size=(75,75) self.page2.position=(44,760) self.add_child(self.page2) def touch_began(self, touch): if self.page1.frame.contains_point(touch.location): self.present_modal_scene(a_scene) for child1 in a_scene.children: if len(child1.children) > 0: if isinstance(child1.children[0], LabelNode): lvl = child1.children[0].text for child2 in b_scene.children: if len(child2.children) > 0: if isinstance(child2.children[0], LabelNode): if child2.children[0].text == lvl: child1.text = child2.text elif self.page2.frame.contains_point(touch.location): self.present_modal_scene(b_scene) for child1 in b_scene.children: if len(child1.children) > 0: if isinstance(child1.children[0], LabelNode): lvl = child1.children[0].text for child2 in a_scene.children: if len(child2.children) > 0: if isinstance(child2.children[0], LabelNode): if child2.children[0].text == lvl: child1.text = child2.text #class Game (Scene): class AScene (Scene): def setup(self): global gen_evol,gen_current_evol self.background = SpriteNode(color = 'red') self.background.size = self.size self.background.position = self.size / 2 self.add_child(self.background) self.main=LabelNode('main') self.main.size=(75,75) self.main.position=(44,860) self.add_child(self.main) self.background_color = '#004f82' ground = Node(parent=self) x = 0 while x <= self.size.w + 64: tile = SpriteNode('plf:Ground_PlanetHalf_mid', position=(x, 0)) ground.add_child(tile) x += 64 self.player = SpriteNode('plf:AlienGreen_front') self.player.anchor_point = (0.5, 0) self.player.position = (self.size.w/2, 32) self.add_child(self.player) #Labels gen_evol = [] self.cards = [] y = 760 evol = [] for l in ['Level 1','Level 2','Level 1','Game Over']: card = LabelNode(' ')#,color=('#0016ff')) card.font = ('Menlo',60) card.position = (300,y) card.size = (160,100) self.add_child(card) card_name = LabelNode(l) card_name.font = card.font card_name.size = card.size card.add_child(card_name) self.cards.append(card) evol.append((l,card.text)) y = y - 100 gen_evol.append(evol) gen_current_evol = 0 #pause symbol self.pause_button = SpriteNode('iow:pause_32', position=(32, self.size.h-32), parent=self) #undo symbol self.undo_button = SpriteNode('iow:reply_256', position=(90, self.size.h-31), parent=self) self.undo_button.size = (50,50) #redo symbol self.redo_button = SpriteNode('iow:refresh_24', position=(160, self.size.h-31), parent=self) self.redo_button.size = (50,50) #control pause symbol button def touch_ended(self, touch): global gen_evol,gen_current_evol if self.pause_button.frame.contains_point(touch.location): self.v = ui.load_view('pawz.pyui') self.v['button1'].action = self.pawz_button_action self.v.present('sheet') self.v['textfield1'].begin_editing() elif self.undo_button.frame.contains_point(touch.location): if gen_current_evol > 0: gen_current_evol -= 1 evol = gen_evol[gen_current_evol] #print('undo',gen_current_evol,evol) for e in evol: txt = e[0] for card in self.cards: if card.children[0].text == txt: card.text = e[1] elif self.redo_button.frame.contains_point(touch.location): if gen_current_evol < (len(gen_evol)-1): gen_current_evol += 1 evol = gen_evol[gen_current_evol] #print('redo',gen_current_evol,evol) for e in evol: txt = e[0] for card in self.cards: if card.children[0].text == txt: card.text = e[1] def pawz_button_action(self,sender): global gen_evol,gen_current_evol # pause button txt = self.v['textfield1'].text evol = [] for card in self.cards: if card.children[0].text == txt: card.text = '😀' #else: #card.text = ' ' evol.append((card.children[0].text,card.text)) gen_evol.append(evol) gen_current_evol = len(gen_evol) - 1 self.v.close() def touch_began(self, touch): if self.main.frame.contains_point(touch.location): self.dismiss_modal_scene() class BScene (Scene): def setup(self): global gen_evol,gen_current_evol self.background = SpriteNode(color = '#71edff') self.background.size = self.size self.background.position = self.size / 2 self.add_child(self.background) self.main=LabelNode('main') self.main.size=(75,75) self.main.position=(44,760) self.add_child(self.main) self.background_color = '#004f82' ground = Node(parent=self) x = 0 while x <= self.size.w + 64: tile = SpriteNode('plf:Ground_PlanetHalf_mid', position=(x, 0)) ground.add_child(tile) x += 64 self.player = SpriteNode('plf:AlienGreen_front') self.player.anchor_point = (0.5, 0) self.player.position = (self.size.w/2, 32) self.add_child(self.player) #Labels gen_evol = [] self.cards = [] y = 760 evol = [] for l in ['Level 1','Level 2','Level 1','Game Over']: card = LabelNode(' ')#,color=('#0016ff')) card.font = ('Menlo',60) card.position = (300,y) card.size = (160,100) self.add_child(card) card_name = LabelNode(l) card_name.font = card.font card_name.size = card.size card.add_child(card_name) self.cards.append(card) evol.append((l,card.text)) y = y - 100 gen_evol.append(evol) gen_current_evol = 0 #pause symbol self.pause_button = SpriteNode('iow:pause_32', position=(32, self.size.h-32), parent=self) #undo symbol self.undo_button = SpriteNode('iow:reply_256', position=(90, self.size.h-31), parent=self) self.undo_button.size = (50,50) #redo symbol self.redo_button = SpriteNode('iow:refresh_24', position=(160, self.size.h-31), parent=self) self.redo_button.size = (50,50) #control pause symbol button def touch_ended(self, touch): global gen_evol,gen_current_evol if self.pause_button.frame.contains_point(touch.location): self.v = ui.load_view('pawz.pyui') self.v['button1'].action = self.pawz_button_action self.v.present('sheet') self.v['textfield1'].begin_editing() elif self.undo_button.frame.contains_point(touch.location): if gen_current_evol > 0: gen_current_evol -= 1 evol = gen_evol[gen_current_evol] #print('undo',gen_current_evol,evol) for e in evol: txt = e[0] for card in self.cards: if card.children[0].text == txt: card.text = e[1] elif self.redo_button.frame.contains_point(touch.location): if gen_current_evol < (len(gen_evol)-1): gen_current_evol += 1 evol = gen_evol[gen_current_evol] #print('redo',gen_current_evol,evol) for e in evol: txt = e[0] for card in self.cards: if card.children[0].text == txt: card.text = e[1] def pawz_button_action(self,sender): global gen_evol,gen_current_evol # pause button txt = self.v['textfield1'].text evol = [] for card in self.cards: if card.children[0].text == txt: card.text = '😀' #else: #card.text = ' ' evol.append((card.children[0].text,card.text)) gen_evol.append(evol) gen_current_evol = len(gen_evol) - 1 self.v.close() def touch_began(self, touch): if self.main.frame.contains_point(touch.location): self.dismiss_modal_scene() main_menu_scene = MainMenuScene() a_scene = AScene() b_scene = BScene() main_view = ui.View() scene_view = SceneView(frame=main_view.bounds, flex='WH') main_view.add_subview(scene_view) scene_view.scene = main_menu_scene main_view.present(hide_title_bar=True, animated=False)