omz:forum

    • Register
    • Login
    • Search
    • Recent
    • Popular
    1. Home
    2. Auer

    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.


    • Profile
    • Following 0
    • Followers 0
    • Topics 3
    • Posts 6
    • Best 0
    • Controversial 0
    • Groups 0

    Auer

    @Auer

    0
    Reputation
    704
    Profile views
    6
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    Auer Unfollow Follow

    Latest posts made by Auer

    • RE: Scene Module Layers introduction

      I'm not very experienced but i assume you would just append them to a list and make sure they all have the same sprite.z_position =? value then if you want to delete the layer just do

      for item in layer:
          item.remove_from_parent()
      
      
      posted in Pythonista
      Auer
      Auer
    • Updating multi touch issues

      This full code has a small section that throws no errors but for some reason doesn't work.

      n0de.position=touch.location
      

      ^Works just fine... but the following

      if n0de.position.x>touch.location.x:
      				n0de.position.x-=self.speed
      		elif n0de.position.x <touch.location.x:
      				n0de.position.x+=self.speed
      		if n0de.position.y >touch.location.y:
      				n0de.position.y-=self.speed
      		elif n0de.position.y<touch.location.y:
      				n0de.position.y+=self.speed
      

      Doesn't do anything. Tho when I replace the position changing lines with print statements it works fine.
      eg

      if n0de.position.y >touch.location.y:
         print('moves down')
      

      I assume I'm missing something about updating Sprite positions?

      Thanks.

      posted in Pythonista
      Auer
      Auer
    • RE: SpriteNode.texture issue

      The Gist
      I also commented all the images, really any images can be used tho since i specify size.... i think
      Thanks for the help!

      I assumed that since tile.color='#whatever' works perfectly it must not be 'themap' 's problem

      posted in Pythonista
      Auer
      Auer
    • RE: SpriteNode.texture issue

      So i made the change and it doesnt give me the texture error, but now something crazy is happening. The texture color is overriding the background color and surrounding tiles.

      tile.texture=current_tile
      

      Turns my PRE-EDIT GAME MAP into this.
      BROKEN TEXTURED MAP

      But this simple code

      tile.color='#ff0000'
      

      CHANGES THE COLOR JUST FINE

      I'm so confused why it doesn't just change the texture, yet it changes the color correctly???

      posted in Pythonista
      Auer
      Auer
    • SpriteNode.texture issue

      I have what I believe to be a simple question..... how do i get the last line of code here to work.

      tile.texture=current_tile
      

      tile is a SpriteNode Object thing, and the current tile is just a png

      I'm attempting to edit a tilemap of SpriteNodes.... I'm quite clueless as all of my programming i learned in pygame.

      from scene import *
      import random
      import ui
      
      A = Action
      g1 ='g1.PNG'
      g2 ='g2.PNG'
      g3 = 'g3.PNG'
      g4='g4.PNG'
      g5='g5.PNG'
      tb='toolbar.PNG'
      
      
      all_tiles=[g1,g2,g3,g4,g5]
      tiles=[g1,g2,g1,g3,g4,g5,g2,g1]
      current_tile=g1
      
      mapsize=100
      
      themap=[[] for _ in range(mapsize)]
      
      class Arrow (SpriteNode):
      	def __init__(self, **kwargs):
      		SpriteNode.__init__(self, 'arrow.PNG', **kwargs) 
      			
      class MyScene (Scene):
      	def setup(self):	
      		self.unit=20
      		unit =self.unit
      		self.items=[]
      		self.points=0
      		#states of buttons
      		self.edit_mode=False
      		self.recenter_gravity=0,0,0
      
      
      		
      		self.background_color = '#000000'
      		sizex,sizey=self.size
      		self.ground = Node(parent=self)
      		
      		self.gen_map()
      		
      		#player
      		self.ship = SpriteNode('p1.PNG')
      		self.ship.size=(unit,unit)
      		self.ship.position = self.size / 2
      		self.add_child(self.ship)
      		
      		#__________BUTTONS&UI_____________
      		self.toolbar=SpriteNode('toolbar.PNG')
      		self.toolbar.size=(unit*16,unit*2)
      		self.toolbar.position=(unit*8,unit)
      		self.add_child(self.toolbar)
      		
      		self.edit_button=SpriteNode('emj:Wrench')
      		self.edit_button.size=(unit*2,unit*2)
      		self.edit_button.position=(unit,unit)
      		self.add_child(self.edit_button)
      		
      		self.re_center=SpriteNode('emj:Anger_Symbol')
      		self.re_center.size=(unit*2,unit*2)
      		self.re_center.position=(unit*3,unit)
      		
      		self.selected=SpriteNode(g1)
      		self.selected.size=(unit*2,unit*2)
      		self.selected.position=(unit*8,unit)
      		self.draws=SpriteNode('emj:Black_Nib')
      		self.draws.size=(unit*2,unit*2)
      		self.draws.position=(unit*6,unit)
      		
      		
      		self.tree = SpriteNode('leaves.PNG')
      		self.tree.size=(unit*3,unit*3)
      		#self.add_child(self.pb)
      		
      		#text on screen
      		self.score= LabelNode('0')
      		self.score.position=10,sizey-10
      		self.add_child(self.score)
      		
      		
      		
      		
      	def update_map(self):
      		sizex,sizey=self.size
      		self.ground.position.x
      		for _ in themap:
      			for tile in _:
      				
      				if tile.position.x+self.ground.position.x>=-self.unit and tile.position.y+self.ground.position.y>=-self.unit and tile.position.x+self.ground.position.x<= sizex +self.unit and tile.position.y+self.ground.position.y<= sizey+ self.unit:
      					tile.z_position=-1
      					self.ground.add_child(tile)
      				else:
      					tile.remove_from_parent()
      					
      	def gen_map(self):
      		sizex,sizey=self.size
      		unit=self.unit
      		#laggyyyy if multi press!!!
      		for _ in themap:
      			for tile in _:
      				tile.remove_from_parent
      				
      		#themap=[[] for _ in range(mapsize)]
      		#generate a random map
      		y=-unit/5
      		zpos=mapsize
      		ypos=0
      		for _ in range (mapsize):
      			
      			x=-unit
      			y+=unit*2
      			for _ in range (mapsize):
      				
      				x+=unit*2
      				tile = SpriteNode(random.choice(tiles), position=(x, y),)
      				tile.size=unit*2,unit*2
      				tile.z_position=zpos
      				themap[ypos].append(tile)
      			zpos-=1
      			ypos+=1
      			
      	def place_tree(self,xy):	
      		self.tree.position=xy-self.ground.position
      		self.tree.z_position=2
      		
      		self.ground.add_child(self.tree)
      		
      	def projectile(self,x,y):
      		ammo = Arrow(parent=self)
      		ammo.size=self.unit*2,self.unit*2
      		ammo.position = (self.ship.position)
      		#ammo.rotation=self.ship.rotation
      		actions = [A.move_to(x,y,1,6), A.remove()]
      		ammo.run_action(A.sequence(actions))
      		ammo.rotation=self.ship.rotation
      		self.items.append(ammo)
      		
      	def check_ammo_collisions(self):
      		sizex,sizey=self.size
      		for ammo in self.items:
      			if ammo.position in 	self.pb.frame:
      				self.items.remove(ammo)
      				ammo.remove_from_parent()
      				self.points+=1
      				self.pb.position=random.randint(0,sizex),random.randint(0,sizey)
      				
      	def update(self):
      		self.update_map()
      		self.check_ammo_collisions()
      		#self.score.text=str(self.points)
      		
      		#save old posotion
      		pos=self.ground.position
      		posx,posy=pos
      		
      		sizex,sizey=self.size
      		x, y, z = gravity()
      		#adjust for held angle of device
      		xx,yy,zz = self.recenter_gravity
      		x-=xx
      		y-=yy
      		z-=zz
      		
      		self.ground.position-=(x * 10, y * 10)
      		
      		#use old and new posotion for rotation
      		newpos=self.ground.position
      		newposx,newposy=newpos
      		deltax=posx-newposx
      		deltay=posy-newposy
      		self.ship.rotation = math.atan2(deltay,deltax)-4.7
      	
      	
      	def wrench(self,xy):
      		if xy in self.edit_button.bbox:
      			if self.edit_mode==True:
      				self.edit_mode=False
      				self.edit_button.color='red'
      				self.re_center.remove_from_parent()
      				self.draws.remove_from_parent()
      				self.selected.remove_from_parent()
      			elif self.edit_mode==False:
      				self.edit_mode=True	
      				self.edit_button.color='#00ff00'
      				self.add_child(self.re_center)
      				self.add_child(self.draws)
      				self.add_child(self.selected)
      				
      	def editmode(self,xy):	
      		if xy in self.re_center.bbox:
      			self.recenter_gravity=gravity()
      			
      		elif xy in self.draws.bbox:
      			pass
      			
      		elif xy in self.selected.bbox:
      			pass
      			
      	def playmode(self,xy):		
      		pass	
      			
      	def touch_began(self, touch):
      		xy =touch.location
      		if xy in self.toolbar.bbox:
      			self.wrench(xy)
      			if self.edit_mode==True:
      				self.editmode(xy)	
      			else:
      				self.playmode(xy)
      		else:
      			xy-=self.ground.position
      			#non toolbar interactions
      			if self.edit_mode==True:
      				for _ in themap:
      					for tile in _:
      						if xy in tile.bbox:
      							tile.texture=current_tile
      				
      			
      		
      
      run(MyScene(), PORTRAIT)
      posted in Pythonista
      Auer
      Auer