摘要:
from scene import *
import sound
import random
import math
import os
A = 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)
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/42850.html
摘要: from scene import *import soundimport randomimport mathimport osA = Action class MyScene (Scene): def setup(self): self.background_color=white self.carlist=[] x=100 y=...
摘要:字典是内置的数据结构,在写程序时会经常用到。这里介绍一下它的方法和方法。在获取中的数据时,我们一般使用的方式,但是如果不存在的时候会抛出。 Python 之禅 The Zen of Python, by Tim Peters Beautiful is better than ugly. 优美胜于丑陋(Python以编写优美的代码为目标) Explicit is be...
from scene import *import soundimport randomimport mathA = Action class MyScene (Scene): def setup(self): self.carlist=[] self.imglist=[img1.png,img2.png,img3.png,img4.png,img5.png,img6.png,im...
摘要:引言学这么久了,一直想做个界面出来,最近发现有个内置库,利用它可以很轻松做出一些简易的界面,首先来看官方对的说明从上面描述中我们不难看出,不管你是系统,还是系统,它都可以生成相对应的操作界面,这就是所谓的跨平台。 showImg(https://segmentfault.com/img/remote/1460000018532942?w=1078&h=1076); 0.引言 学Pyth...
阅读 2978·2021-11-24 10:21
阅读 1550·2021-10-11 10:57
阅读 2753·2021-09-22 15:24
阅读 2582·2021-09-22 14:58
阅读 2298·2019-08-30 13:16
阅读 3450·2019-08-29 13:05
阅读 3386·2019-08-29 12:14
阅读 3346·2019-08-27 10:55