pos
Python小
是一小小的程式,程式包含了模式。第一是""模式,另一是""模式。在""模式中,者可以加入一些物件(如:小人和其他物品),且利用滑鼠拖曳的功能在面中些物品。因我不擅於美工,所以我生了一些英文字的片做的物品。是利用小人角色去收集散落於面中的物品,只要集9物品就算是束。另外中有一叫Energy(能量),西著小人的移而少,一但值成0,而小人尚未收集到9物品,就算是任失,且束。Energy值,我根小人的移方向的不同,而予不同的值。因向上爬比力,所以少的比多,向下走比省力,所以少的比少,左右移少的值者之。Eq1所表示的料就是上下左右所少的Energy值,目前值未提供去更,如果要者可以更此定值,需要撰一介面供者更中的料,如果有需要可以花撰。另外於物品方面,目前只提供增加物品到幕面的功能,有提供某物品中移除的功能,如果有需要可以考撰此功能,使整介面更加完善。Eq2所表示的料所有物品存放的,面的料包含物品的名、示的示料的座位置。Eq3中所示的料小人的基本料,包含位置、(面向何方)、收集到的物品、他目前的Energy值。因我怕物品收集完,Energy值就0,所以值成10000。
self.energy_cost={'up':50,'down':10,'left':20,'right':20} (Eq1)
self.items={} (Eq2)
self.user_status={'
pos':role,'face':32,'status':0,'image':'RedMageSpriteSheet.bmp','item':[],'energy':10000}(Eq3)
一所示的就是""模式的面,在面中可以透"Add Item"按增加物品,利用滑鼠物品移到所希望的位置,置出一景。
一: 介面,利用滑鼠拖曳的功能文字拉到面的中央
另外一是""模式,在模式中,者必使用的上、下、左、右控制人物的移。且法人物移到物品的上面,人物与物品的片重,物品就被放入小人的口袋中。面分成部分,一部分就是小人所能移的空,另一部分是於小人的示,包含小人目前的Energy值收集到的物品。目前是一集字,但是有限定者集字的序,者可以可能的少Energy的少,在0前收集到9字母即可。
二: 介面,利用控制人物的移,收集面上的物品,中已收集了五物品
控制程式
def OnPanel1KeyDown(self, event):
code=event.GetKeyCode()
dx=0
dy=0
if self.isplay:
if code==wx.WXK_UP: #如果到向上的被按下
can_move = self.user_status['energy'] - self.energy_cost['up']
if self.user_status['face']==0 and can_move>=0:
self.user_status['energy'] -= self.energy_cost['up']
dy+=-5
else:
self.user_status['face']=0
elif code==wx.WXK_DOWN: #如果到向下的被按下
can_move = self.user_status['energy'] - self.energy_cost['down']
if self.user_status['face']==32 and can_move>=0:
self.user_status['energy'] -= self.energy_cost['down']
dy+=5
else:
self.user_status['face']=32
elif code==wx.WXK_LEFT: #如果到向左的被按下
can_move = self.user_status['energy'] - self.energy_cost['left']
if self.user_status['face']==64 and can_move>=0:
self.user_status['energy'] -= self.energy_cost['left']
dx+=-5
else:
self.user_status['face']=64
elif code==wx.WXK_RIGHT: #如果到向右的被按下
can_move = self.user_status['energy'] - self.energy_cost['right']
if self.user_status['face']==96 and can_move>=0:
self.user_status['energy'] -= self.energy_cost['right']
dx+=5
else:
self.user_status['face']=96
if (self.user_status['
pos'].
pos[0]+dx)>=0 and (self.user_status['
pos'].
pos[0]+dx)<=self.bounary[0] and (self.user_status['
pos'].
pos[1]+dy)>=0 and (self.user_status
['
pos'].
pos[1]+dy)<=self.bounary[1]:
self.user_status['
pos'].setDelta
pos((dx,dy))
#check has item
x=self.user_status['
pos'].
pos[0]
y=self.user_status['
pos'].
pos[1]
for index, item in self.items.iteritems():
rect=item['
pos']
if rect.isIn((x,y)) and len(self.user_status['item'])<=9:
if not index in self.delItem:
self.user_status['item'].append(item)
self.delItem.append(index)
文章定位: