资讯专栏INFORMATION COLUMN

pythonista 游戏代码更新

Pocher / 1433人阅读

摘要:

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

相关文章

  • pythonista ipad游戏代码保存

    摘要: from scene import *import soundimport randomimport mathimport osA = Action class MyScene (Scene): def setup(self): self.background_color=white self.carlist=[] x=100 y=...

    bbbbbb 评论0 收藏0
  • Pythonista 容易忽略的python编程方式

    摘要:字典是内置的数据结构,在写程序时会经常用到。这里介绍一下它的方法和方法。在获取中的数据时,我们一般使用的方式,但是如果不存在的时候会抛出。 Python 之禅 The Zen of Python, by Tim Peters Beautiful is better than ugly. 优美胜于丑陋(Python以编写优美的代码为目标) Explicit is be...

    wendux 评论0 收藏0
  • pythonista去掉图片背景色是哪条语句?

    pygame里的setcolorkey(black),同样功能怎么实现,有大佬来解答一下吗?

    muddyway 评论0 收藏0
  • pythonista cartest2 源码

    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...

    tigerZH 评论0 收藏0
  • Python又把GUI界面攻下了,今天就告诉你怎么玩

    摘要:引言学这么久了,一直想做个界面出来,最近发现有个内置库,利用它可以很轻松做出一些简易的界面,首先来看官方对的说明从上面描述中我们不难看出,不管你是系统,还是系统,它都可以生成相对应的操作界面,这就是所谓的跨平台。 showImg(https://segmentfault.com/img/remote/1460000018532942?w=1078&h=1076); 0.引言 学Pyth...

    SunZhaopeng 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<