pythonista 游戏代码更新

34次阅读

共计 21684 个字符,预计需要花费 55 分钟才能阅读完成。

from scene import *import soundimport randomimport mathimport osA = Action
class MyScene (Scene):
def setup(self):
self.background_color=’white’

self.carlist=[]
self.numlablelist=[]

x=100
y=300
#self.a=self.spawn_car(x,y-199)
#self.b=self.spawn_car(x+199,y-199)
#self.spawn_car(x+398,y-199)
#self.c=self.spawn_car(x,y)
#self.spawn_car(x+199,y)
#self.spawn_car(x+398,y)
#self.spawn_car(x,y+199)
#self.spawn_car(x+199,y+199)
#self.spawn_car(x+398,y+199)

self.a=self.spawn_car(x,y-200,0)
self.b=self.spawn_car(x+200,y-200,0)
self.c=self.spawn_car(x+400,y-200,0)
self.d=self.spawn_car(x,y,0)
self.e=self.spawn_car(x+200,y,4)
self.f=self.spawn_car(x+400,y,0)
self.g=self.spawn_car(x,y+200,0)
self.h=self.spawn_car(x+200,y+200,0)
self.i=self.spawn_car(x+400,y+200,0)

self.atcaryes=True
self.phyes=False
self.pyyes=False

self.p=self.a.position

self.p1=self.a.position
self.p2=self.a.position

self.rot=0
self.radian=0
self.movable=False

self.rottotalnum=0

#card5Img=’5.png’
#card1Img=’1.png’
self.cardlistred=[‘card:DiamondsA’,’card:Diamonds2′,’card:Diamonds3′,’card:Diamonds4′,’card:Diamonds5′,’card:Diamonds6′,’card:Diamonds7′,’card:Diamonds8′,’card:Diamonds9′,’card:Diamonds10′,’card:DiamondsJ’,’card:DiamondsQ’,’card:HeartsK’]
#cardlistred.append(card5Img)
#cardlistred.append(card1Img)

#card103Img=’103.png’
#card107Img=’107.png’
self.cardlistblack=[‘card:ClubsA’,’card:Clubs2′,’card:Clubs3′,’card:Clubs4′,’card:Clubs5′,’card:Clubs6′,’card:Clubs7′,’card:Clubs8′,’card:Clubs9′,’card:Clubs10′,’card:ClubsJ’,’card:ClubsQ’,’card:ClubsK’]
#cardlistblack.append(card103Img)

self.card=self.spawn_card(self.cardlistred,self.a)
self.card2=self.spawn_card(self.cardlistblack,self.d)

#set car.plusnum
for car in self.carlist:
car.plusnum=random.randint(-1,+3)

self.win_lable=LabelNode(text=’playing’)
self.win_lable.anchor_point=(-20,0)
self.win_lable.position=(0,718)
self.win_lable.color=’black’
self.win_lable.font=(‘Arial’,30)
self.add_child(self.win_lable)

strplusnum=str(self.a.plusnum)
self.num_lable1=LabelNode(text=strplusnum)
self.num_lable1.anchor_point=(0,0)
self.num_lable1.position=self.a.position
self.num_lable1.color=’black’
self.num_lable1.font=(‘Arial’,30)
self.add_child(self.num_lable1)
#self.numlablelist.append(self.num_lable)
strplusnum=str(self.b.plusnum)
self.num_lable2=LabelNode(text=strplusnum)
self.num_lable2.anchor_point=(0,0)
self.num_lable2.position=self.b.position
self.num_lable2.color=’black’
self.num_lable2.font=(‘Arial’,30)
self.add_child(self.num_lable2)
#self.numlablelist.append(self.num_lable
strplusnum=str(self.c.plusnum)
self.num_lable3=LabelNode(text=strplusnum)
self.num_lable3.anchor_point=(0,0)
self.num_lable3.position=self.c.position
self.num_lable3.color=’black’
self.num_lable3.font=(‘Arial’,30)
self.add_child(self.num_lable3)
#self.numlablelist.append(self.num_lable
strplusnum=str(self.d.plusnum)
self.num_lable4=LabelNode(text=strplusnum)
self.num_lable4.anchor_point=(0,0)
self.num_lable4.position=self.d.position
self.num_lable4.color=’black’
self.num_lable4.font=(‘Arial’,30)
self.add_child(self.num_lable4)
#self.numlablelist.append(self.num_lable
strplusnum=str(self.e.plusnum)
self.num_lable5=LabelNode(text=strplusnum)
self.num_lable5.anchor_point=(0,0)
self.num_lable5.position=self.e.position
self.num_lable5.color=’black’
self.num_lable5.font=(‘Arial’,30)
self.add_child(self.num_lable5)
#self.numlablelist.append(self.num_lable
strplusnum=str(self.f.plusnum)
self.num_lable6=LabelNode(text=strplusnum)
self.num_lable6.anchor_point=(0,0)
self.num_lable6.position=self.f.position
self.num_lable6.color=’black’
self.num_lable6.font=(‘Arial’,30)
self.add_child(self.num_lable6)
#self.numlablelist.append(self.num_lable
strplusnum=str(self.g.plusnum)
self.num_lable7=LabelNode(text=strplusnum)
self.num_lable7.anchor_point=(0,0)
self.num_lable7.position=self.g.position
self.num_lable7.color=’black’
self.num_lable7.font=(‘Arial’,30)
self.add_child(self.num_lable7)
#self.numlablelist.append(self.num_lable
strplusnum=str(self.h.plusnum)
self.num_lable8=LabelNode(text=strplusnum)
self.num_lable8.anchor_point=(0,0)
self.num_lable8.position=self.h.position
self.num_lable8.color=’black’
self.num_lable8.font=(‘Arial’,30)
self.add_child(self.num_lable8)
#self.numlablelist.append(self.num_lable
strplusnum=str(self.i.plusnum)
self.num_lable9=LabelNode(text=strplusnum)
self.num_lable9.anchor_point=(0,0)
self.num_lable9.position=self.i.position
self.num_lable9.color=’black’
self.num_lable9.font=(‘Arial’,30)
self.add_child(self.num_lable9)
#self.numlablelist.append(self.num_lable

#self.run_action(A.sequence(A.call(self.movecard),A.wait(1)))
#self.run_action(A.sequence(A.call(self.movecard),A.wait(1)))
#self.run_action(A.sequence(A.call(self.movecard),A.wait(1)))
def newgame(self):
for car in self.carlist:
car.remove_from_parent()
self.carlist=[]
#print(self.carlist)
self.card.remove_from_parent()
self.card2.remove_from_parent()

x=100
y=300
#self.a=self.spawn_car(x,y-199)
#self.b=self.spawn_car(x+199,y-199)
#self.spawn_car(x+398,y-199)
#self.c=self.spawn_car(x,y)
#self.spawn_car(x+199,y)
#self.spawn_car(x+398,y)
#self.spawn_car(x,y+199)
#self.spawn_car(x+199,y+199)
#self.spawn_car(x+398,y+199)

self.a=self.spawn_car(x,y-200,0)
self.b=self.spawn_car(x+200,y-200,0)
self.c=self.spawn_car(x+400,y-200,0)
self.d=self.spawn_car(x,y,0)
self.e=self.spawn_car(x+200,y,4)
self.f=self.spawn_car(x+400,y,0)
self.g=self.spawn_car(x,y+200,0)
self.h=self.spawn_car(x+200,y+200,0)
self.i=self.spawn_car(x+400,y+200,0)
#print(‘ok’)
#print(self.carlist)

self.atcaryes=True
self.phyes=False
self.pyyes=False

self.p=self.a.position

self.p1=self.a.position
self.p2=self.a.position

self.rot=0
self.radian=0
self.movable=False

self.rottotalnum=0

self.card=self.spawn_card(self.cardlistred,self.a)
self.card2=self.spawn_card(self.cardlistblack,self.i)

#set car.plusnum
for car in self.carlist:
car.plusnum=random.randint(-1,+3)

self.win_lable.text=(‘playing’)

self.num_lable1.text=str(self.a.plusnum)
self.num_lable2.text=str(self.b.plusnum)
self.num_lable3.text=str(self.c.plusnum)
self.num_lable4.text=str(self.d.plusnum)
self.num_lable5.text=str(self.e.plusnum)
self.num_lable6.text=str(self.f.plusnum)
self.num_lable7.text=str(self.g.plusnum)
self.num_lable8.text=str(self.h.plusnum)
self.num_lable9.text=str(self.i.plusnum)

def rotate(self):
#self.collidewithcar()
acar=self.atcar()
if self.atcaryes and acar is not None:

ax=acar.position.x
ay=acar.position.y
#self.rot=(self.rot+90)%360
#self.radian=self.rot*math.pi/180
”’for carname in self.carlist:
if not carname.rotatable:
carname.remove_all_actions() ”’

if acar.rotatable:
acar.run_action(A.rotate_by((math.pi/2),0))
acar.rotnum=acar.rotnum+1
self.rottotalnum=(self.rottotalnum+1)%6
acar.calnum=(acar.calnum+1)%4
acar.carnum=(acar.calnum+acar.num)%4

if acar.num==9:
self.new_hitboxh=Rect(ax+acar.hitboxv.y-ay,ay+acar.hitboxv.x-ax,acar.hitboxv.h,acar.hitboxv.w)
self.new_hitboxv=Rect(ax+acar.hitboxh.y-ay,ay+acar.hitboxh.x-ax,acar.hitboxh.h,acar.hitboxh.w)
acar.hitboxh=self.new_hitboxh
acar.hitboxv=self.new_hitboxv
if acar.num==1 or acar.num==2 or acar.num==3 or acar.num==4:
if acar.carnum==1:
acar.hitboxh=Rect(acar.position.x-101,acar.position.y-5,202,10)
acar.hitboxv=Rect(acar.position.x-5,acar.position.y,10,101)

if acar.carnum==2:
acar.hitboxh=Rect(acar.position.x-101,acar.position.y-5,101,10)
acar.hitboxv=Rect(acar.position.x-5,acar.position.y-101,5,202)

if acar.carnum==3:
acar.hitboxh=Rect(acar.position.x-101,acar.position.y-5,202,10)
acar.hitboxv=Rect(acar.position.x-5,acar.position.y-101,10,101)

if acar.carnum==0:
acar.hitboxh=Rect(acar.position.x,acar.position.y-5,101,10)
acar.hitboxv=Rect(acar.position.x-5,acar.position.y-101,10,202)
if acar.num==5 or acar.num==6 or acar.num==7 or acar.num==8:
if acar.carnum==1:
acar.hitboxh=Rect(acar.position.x-101,acar.position.y-5,101,10)
acar.hitboxv=Rect(acar.position.x-5,acar.position.y,5,101)

if acar.carnum==2:
acar.hitboxh=Rect(acar.position.x-101,acar.position.y-5,101,10)
acar.hitboxv=Rect(acar.position.x-5,acar.position.y-101,10,101)

if acar.carnum==3:
acar.hitboxh=Rect(acar.position.x,acar.position.y-5,101,10)
acar.hitboxv=Rect(acar.position.x-5,acar.position.y-101,10,101)

if acar.carnum==0:
acar.hitboxh=Rect(acar.position.x,acar.position.y-5,101,10)
acar.hitboxv=Rect(acar.position.x-5,acar.position.y,5,101)
#rotate unrotated
if self.rottotalnum==0:
for acar in self.carlist:
if acar.rotnum==0:
acar.run_action(A.rotate_by((math.pi/2),0))
ax=acar.position.x
ay=acar.position.y

acar.calnum=(acar.calnum+1)%4
acar.carnum=(acar.calnum+acar.num)%4

if acar.num==9:
self.new_hitboxh=Rect(ax+acar.hitboxv.y-ay,ay+acar.hitboxv.x-ax,acar.hitboxv.h,acar.hitboxv.w)
self.new_hitboxv=Rect(ax+acar.hitboxh.y-ay,ay+acar.hitboxh.x-ax,acar.hitboxh.h,acar.hitboxh.w)
acar.hitboxh=self.new_hitboxh
acar.hitboxv=self.new_hitboxv
if acar.num==1 or acar.num==2 or acar.num==3 or acar.num==4:
if acar.carnum==1:
acar.hitboxh=Rect(acar.position.x-101,acar.position.y-5,202,10)
acar.hitboxv=Rect(acar.position.x-5,acar.position.y,10,101)

if acar.carnum==2:
acar.hitboxh=Rect(acar.position.x-101,acar.position.y-5,101,10)
acar.hitboxv=Rect(acar.position.x-5,acar.position.y-101,5,202)

if acar.carnum==3:
acar.hitboxh=Rect(acar.position.x-101,acar.position.y-5,202,10)
acar.hitboxv=Rect(acar.position.x-5,acar.position.y-101,10,101)

if acar.carnum==0:
acar.hitboxh=Rect(acar.position.x,acar.position.y-5,101,10)
acar.hitboxv=Rect(acar.position.x-5,acar.position.y-101,10,202)
if acar.num==5 or acar.num==6 or acar.num==7 or acar.num==8:
if acar.carnum==1:
acar.hitboxh=Rect(acar.position.x-101,acar.position.y-5,101,10)
acar.hitboxv=Rect(acar.position.x-5,acar.position.y,5,101)

if acar.carnum==2:
acar.hitboxh=Rect(acar.position.x-101,acar.position.y-5,101,10)
acar.hitboxv=Rect(acar.position.x-5,acar.position.y-101,10,101)

if acar.carnum==3:
acar.hitboxh=Rect(acar.position.x,acar.position.y-5,101,10)
acar.hitboxv=Rect(acar.position.x-5,acar.position.y-101,10,101)

if acar.carnum==0:
acar.hitboxh=Rect(acar.position.x,acar.position.y-5,101,10)
acar.hitboxv=Rect(acar.position.x-5,acar.position.y,5,101)

def movecollidewithcar(self):

acar=self.atcar()
if self.atcaryes and acar is not None:

#print(acar.position)
carmlist=[]

self.carlist.remove(acar)
for car in self.carlist:
if car is not None and acar is not None and car.hitboxh.intersects(acar.hitboxh):
carmlist.append(car)

#self.phyes=True
self.movable=True
#print(‘hh’)

elif car is not None and acar is not None and car.hitboxv.intersects(acar.hitboxv):
carmlist.append(car)

#self.pyyes=True
self.movable=True
#print(‘vv’)

if self.movable:
carm=random.choice(carmlist)
self.p=(carm.position.x-5,carm.position.y)

#self.card.intfilename=self.card.intfilename+carm.plusnum
#if self.card.intfilename>=13:
#self.card.intfilename=13
#if self.card.intfilename<=1:
#self.card.intfilename=1
#resultstrfilename=str(self.card.intfilename)
#self.card.remove_from_parent()
#self.card=self.change_card(self.card,(resultstrfilename+’.png’))

self.card.index=self.card.index+carm.plusnum
if self.card.index>=12:
self.card.index=12
if self.card.index<=0:
self.card.index=0
#resultstrfilename=str(self.card2.intfilename)
self.card.remove_from_parent()
list=self.c
self.card=self.change_card(self.card,self.cardlistred[self.card.index])

#self.phyes=False
#self.pyyes=False
self.carlist.append(acar)

if self.movable:
self.card.position=self.p
#print(self.card.position)

acar.rotatable=False
self.movable=False

def atcar(self):
for car in self.carlist:
if car is not None and car.bbox.intersects(self.card.bbox):
self.atcaryes=True
car.rotatable=True
#print(‘at’)
#print(car.position)
return car

#card2operation
def rotate2(self):
#self.collidewithcar()
acar=self.atcar2()
if self.atcaryes and acar is not None:

ax=acar.position.x
ay=acar.position.y
#self.rot=(self.rot+90)%360
#self.radian=self.rot*math.pi/180
”’for carname in self.carlist:
if not carname.rotatable:
carname.remove_all_actions() ”’

if acar.rotatable:
acar.run_action(A.rotate_by((math.pi/2),0))
acar.rotnum=acar.rotnum+1
self.rottotalnum=(self.rottotalnum+1)%6
acar.calnum=(acar.calnum+1)%4
acar.carnum=(acar.calnum+acar.num)%4

if acar.num==9:
self.new_hitboxh=Rect(ax+acar.hitboxv.y-ay,ay+acar.hitboxv.x-ax,acar.hitboxv.h,acar.hitboxv.w)
self.new_hitboxv=Rect(ax+acar.hitboxh.y-ay,ay+acar.hitboxh.x-ax,acar.hitboxh.h,acar.hitboxh.w)
acar.hitboxh=self.new_hitboxh
acar.hitboxv=self.new_hitboxv
if acar.num==1 or acar.num==2 or acar.num==3 or acar.num==4:
if acar.carnum==1:
acar.hitboxh=Rect(acar.position.x-101,acar.position.y-5,202,10)
acar.hitboxv=Rect(acar.position.x-5,acar.position.y,10,101)

if acar.carnum==2:
acar.hitboxh=Rect(acar.position.x-101,acar.position.y-5,101,10)
acar.hitboxv=Rect(acar.position.x-5,acar.position.y-101,5,202)

if acar.carnum==3:
acar.hitboxh=Rect(acar.position.x-101,acar.position.y-5,202,10)
acar.hitboxv=Rect(acar.position.x-5,acar.position.y-101,10,101)

if acar.carnum==0:
acar.hitboxh=Rect(acar.position.x,acar.position.y-5,101,10)
acar.hitboxv=Rect(acar.position.x-5,acar.position.y-101,10,202)
if acar.num==5 or acar.num==6 or acar.num==7 or acar.num==8:
if acar.carnum==1:
acar.hitboxh=Rect(acar.position.x-101,acar.position.y-5,101,10)
acar.hitboxv=Rect(acar.position.x-5,acar.position.y,5,101)

if acar.carnum==2:
acar.hitboxh=Rect(acar.position.x-101,acar.position.y-5,101,10)
acar.hitboxv=Rect(acar.position.x-5,acar.position.y-101,10,101)

if acar.carnum==3:
acar.hitboxh=Rect(acar.position.x,acar.position.y-5,101,10)
acar.hitboxv=Rect(acar.position.x-5,acar.position.y-101,10,101)

if acar.carnum==0:
acar.hitboxh=Rect(acar.position.x,acar.position.y-5,101,10)
acar.hitboxv=Rect(acar.position.x-5,acar.position.y,5,101)
#rotate unrotated
if self.rottotalnum==0:
for acar in self.carlist:
if acar.rotnum==0:
acar.run_action(A.rotate_by((math.pi/2),0))
ax=acar.position.x
ay=acar.position.y

acar.calnum=(acar.calnum+1)%4
acar.carnum=(acar.calnum+acar.num)%4

if acar.num==9:
self.new_hitboxh=Rect(ax+acar.hitboxv.y-ay,ay+acar.hitboxv.x-ax,acar.hitboxv.h,acar.hitboxv.w)
self.new_hitboxv=Rect(ax+acar.hitboxh.y-ay,ay+acar.hitboxh.x-ax,acar.hitboxh.h,acar.hitboxh.w)
acar.hitboxh=self.new_hitboxh
acar.hitboxv=self.new_hitboxv
if acar.num==1 or acar.num==2 or acar.num==3 or acar.num==4:
if acar.carnum==1:
acar.hitboxh=Rect(acar.position.x-101,acar.position.y-5,202,10)
acar.hitboxv=Rect(acar.position.x-5,acar.position.y,10,101)

if acar.carnum==2:
acar.hitboxh=Rect(acar.position.x-101,acar.position.y-5,101,10)
acar.hitboxv=Rect(acar.position.x-5,acar.position.y-101,5,202)

if acar.carnum==3:
acar.hitboxh=Rect(acar.position.x-101,acar.position.y-5,202,10)
acar.hitboxv=Rect(acar.position.x-5,acar.position.y-101,10,101)

if acar.carnum==0:
acar.hitboxh=Rect(acar.position.x,acar.position.y-5,101,10)
acar.hitboxv=Rect(acar.position.x-5,acar.position.y-101,10,202)
if acar.num==5 or acar.num==6 or acar.num==7 or acar.num==8:
if acar.carnum==1:
acar.hitboxh=Rect(acar.position.x-101,acar.position.y-5,101,10)
acar.hitboxv=Rect(acar.position.x-5,acar.position.y,5,101)

if acar.carnum==2:
acar.hitboxh=Rect(acar.position.x-101,acar.position.y-5,101,10)
acar.hitboxv=Rect(acar.position.x-5,acar.position.y-101,10,101)

if acar.carnum==3:
acar.hitboxh=Rect(acar.position.x,acar.position.y-5,101,10)
acar.hitboxv=Rect(acar.position.x-5,acar.position.y-101,10,101)

if acar.carnum==0:
acar.hitboxh=Rect(acar.position.x,acar.position.y-5,101,10)
acar.hitboxv=Rect(acar.position.x-5,acar.position.y,5,101)

def movecollidewithcar2(self):

acar=self.atcar2()
if self.atcaryes and acar is not None:

#print(acar.position)
carmlist=[]

self.carlist.remove(acar)
for car in self.carlist:
if car is not None and acar is not None and car.hitboxh.intersects(acar.hitboxh):
carmlist.append(car)

#self.phyes=True
self.movable=True
#print(‘hh’)

elif car is not None and acar is not None and car.hitboxv.intersects(acar.hitboxv):
carmlist.append(car)

#self.pyyes=True
self.movable=True
#print(‘vv’)

if self.movable:
carm=random.choice(carmlist)
self.p=(carm.position.x+5,carm.position.y)

#self.card2.intfilename=self.card2.intfilename+carm.plusnum

#if self.card2.intfilename>=113:
#self.card2.intfilename=113
#if self.card2.intfilename<=101:
#self.card2.intfilename=101
#resultstrfilename=str(self.card2.intfilename)
#self.card2.remove_from_parent()
#self.card2=self.change_card(self.card2,(resultstrfilename+’.png’))

self.card2.index=self.card2.index+carm.plusnum
if self.card2.index>=12:
self.card2.index=12
if self.card2.index<=0:
self.card2.index=0
#resultstrfilename=str(self.card2.intfilename)
self.card2.remove_from_parent()
self.card2=self.change_card(self.card2,(self.cardlistblack[self.card2.index]))

#self.phyes=False
#self.pyyes=False
self.carlist.append(acar)

if self.movable:
self.card2.position=self.p

#######################################################
#twocardoverlapped
#if self.card2.position==self.card.position:
#print(‘overlapp’)
#print(self.card2.position)
#self.card2.position=(self.card2.position.x+10,self.card2.position.y)
#print(self.card2.position)
#self.card.position=(self.card.position.x-40,self.card.position.y)
#if not(self.card2.position==self.card.position):
#???##############################################################

acar.rotatable=False
self.movable=False

def atcar2(self):
for car in self.carlist:
if car is not None and car.bbox.intersects(self.card2.bbox):
self.atcaryes=True
car.rotatable=True
#print(‘at’)
#print(car.position)
return car

else:self.atcaryes=False
def spawn_card(self,listname,positioncar):
#file=random.choice(listname)
file=listname[0]

card1=SpriteNode(file)
card1.blend_mode=BLEND_MULTIPLY
card1.position=positioncar.position
#filename=os.path.splitext(file)[0]
#card1.intfilename=int(filename)
card1.index=listname.index(file)
self.add_child(card1)
return card1

def change_card(self,lastcardname,file):
card1=SpriteNode(file)
card1.blend_mode=BLEND_MULTIPLY
card1.position=lastcardname.position
#card1.intfilename=lastcardname.intfilename
card1.index=lastcardname.index
self.add_child(card1)
return card1

def spawn_car(self,x,y,pnum):
randomcarlist=[]
car1=SpriteNode(‘img1.png’)
car1.blend_mode=BLEND_MULTIPLY
car1.position=(x,y)
car1.rotnum=0
car1.num=1
car1.calnum=0
car1.carnum=0
car1.hitboxh=Rect(car1.position.x-101,car1.position.y-5,202,10)
car1.hitboxv=Rect(car1.position.x-5,car1.position.y,10,101)
randomcarlist.append(car1)

car2=SpriteNode(‘img2.png’)
car2.blend_mode=BLEND_MULTIPLY
car2.position=(x,y)
car2.rotnum=0
car2.num=2
car2.calnum=0
car2.carnum=0
car2.hitboxh=Rect(car2.position.x-101,car2.position.y-5,101,10)
car2.hitboxv=Rect(car2.position.x-5,car2.position.y-101,5,202)
randomcarlist.append(car2)

car3=SpriteNode(‘img3.png’)
car3.blend_mode=BLEND_MULTIPLY
car3.position=(x,y)
car3.rotnum=0
car3.num=3
car3.calnum=0
car3.carnum=0
car3.hitboxh=Rect(car3.position.x-101,car3.position.y-5,202,10)
car3.hitboxv=Rect(car3.position.x-5,car3.position.y-101,10,101)
randomcarlist.append(car3)

car4=SpriteNode(‘img4.png’)
car4.blend_mode=BLEND_MULTIPLY
car4.position=(x,y)
car4.rotnum=0
car4.num=4
car4.calnum=0
car4.carnum=0
car4.hitboxh=Rect(car4.position.x,car4.position.y-5,101,10)
car4.hitboxv=Rect(car4.position.x-5,car4.position.y-101,10,202)
randomcarlist.append(car4)

car5=SpriteNode(‘img5.png’)
car5.blend_mode=BLEND_MULTIPLY
car5.position=(x,y)
car5.rotnum=0
car5.num=5
car5.calnum=0
car5.carnum=0
car5.hitboxh=Rect(car5.position.x-101,car5.position.y-5,101,10)
car5.hitboxv=Rect(car5.position.x-5,car5.position.y,5,101)
randomcarlist.append(car5)

car6=SpriteNode(‘img6.png’)
car6.blend_mode=BLEND_MULTIPLY
car6.position=(x,y)
car6.rotnum=0
car6.num=6
car6.calnum=0
car6.carnum=0
car6.hitboxh=Rect(car6.position.x-101,car6.position.y-5,101,10)
car6.hitboxv=Rect(car6.position.x-5,car6.position.y-101,10,101)
randomcarlist.append(car6)

car7=SpriteNode(‘img7.png’)
car7.blend_mode=BLEND_MULTIPLY
car7.position=(x,y)
car7.rotnum=0
car7.num=7
car7.calnum=0
car7.carnum=0
car7.hitboxh=Rect(car7.position.x,car7.position.y-5,101,10)
car7.hitboxv=Rect(car7.position.x-5,car7.position.y-101,10,101)
randomcarlist.append(car7)

car8=SpriteNode(‘img8.png’)
car8.blend_mode=BLEND_MULTIPLY
car8.position=(x,y)
car8.rotnum=0
car8.num=8
car8.calnum=0
car8.carnum=0
car8.hitboxh=Rect(car8.position.x,car8.position.y-5,101,10)
car8.hitboxv=Rect(car8.position.x-5,car8.position.y,5,101)
randomcarlist.append(car8)

car9=SpriteNode(‘img9.png’)
car9.blend_mode=BLEND_MULTIPLY
car9.position=(x,y)
car9.rotnum=0
car9.num=9
car9.calnum=0
car9.carnum=0
car9.hitboxh=Rect(car9.position.x-101,car9.position.y-5,202,10)
car9.hitboxv=Rect(car9.position.x-0.5,car9.position.y-0.5,1,1)
randomcarlist.append(car9)

car10=SpriteNode(‘img10.png’)
car10.blend_mode=BLEND_MULTIPLY
car10.position=(x,y)
car10.rotnum=0
car10.num=9
car10.calnum=0
car10.carnum=0
car10.hitboxh=Rect(car10.position.x-0.5,car10.position.y-0.5,1,1)
car10.hitboxv=Rect(car10.position.x-5,car10.position.y-101,10,202)
randomcarlist.append(car10)

car11=SpriteNode(‘img11.png’)
car11.blend_mode=BLEND_MULTIPLY
car11.position=(x,y)
car11.rotnum=0
car11.num=9
car11.calnum=0
car11.carnum=0
car11.hitboxh=Rect(car11.position.x-101,car11.position.y-5,202,10)
car11.hitboxv=Rect(car11.position.x-5,car11.position.y-101,10,202)
randomcarlist.append(car11)

car=random.choice(randomcarlist)
self.add_child(car)
car.rotatable=False
car.plusnum=pnum
self.carlist.append(car)

return car

def did_change_size(self):
pass

def update(self):
#self.rot=(self.rot+90)%360
#if self.a.hitboxh.intersects(self.b.hitboxh):
#print(1)
#print(self.a.hitboxh.intersection(self.b.hitboxh))
#if self.a.hitboxv.intersects(self.c.hitboxv):
#print(1)
#print(self.a.hitboxv.intersection(self.c.hitboxv))
#for car in self.carlist:
#act=A.repeat(A.rotate_by(math.pi/2,1),-1)
#car.run_action(act)
#self.run_action(A.sequence(A.call(self.movecard),A.wait(10)))
#self.run_action(A.sequence(A.call(self.movecard),A.wait(10)))
#self.run_action(A.repeat(A.sequence(A.call(self.rotate),A.call(self.movecollidewithcar)),-1))
#self.movecard()
#self.movecard()
#self.movecard()
#self.rotate()
#self.movecard()
#self.rotate()
if self.t>=1:
if not self.card.index==12 and not self.card2.index==12:
self.rotate()
self.movecollidewithcar()
self.rotate2()
self.movecollidewithcar2()
self.t=0
if self.card.index==12 and not self.card2.index==12:
self.win_lable.text=’you win,touch to start a new game’
if self.card2.index==12 and not self.card.index==12:
self.win_lable.text=’you lose,touch to start a new game’
if self.card.index==12 and self.card2.index==12:
self.win_lable.text=’It is a draw,touch to start a new game’

def touch_began(self, touch):
self.newgame()

def touch_moved(self, touch):
pass

def touch_ended(self, touch):
pass

if name == ‘__main__’:
run(MyScene(), show_fps=True)

正文完
 0