Esempio n. 1
0
 def __init__(self):
     ShowBase.__init__(self)
     pman.shim.init(self)
     info = self.pipe.getDisplayInformation()
     for idx in range(info.getTotalDisplayModes()):
         width = info.getDisplayModeWidth(idx)
         height = info.getDisplayModeHeight(idx)
         bits = info.getDisplayModeBitsPerPixel(idx)
     wp = WindowProperties()
     wp.set_size(width, height)
     base.win.requestProperties(wp)
     self.win.set_clear_color((0.03,0.03,0.03,1))
     add_device_listener(
         config_file='keybindings.toml',
         assigner=SinglePlayerAssigner(),
     )
     base.disableMouse() 
     self.dt = globalClock.get_dt()
     self.transition = Transitions(loader)
     self.font = loader.load_font("probe.ttf")
     self.load_sounds()
     self.base_fov = 35
     base.camLens.set_fov(self.base_fov)
     self.interface = Interface()
     self.sequence = None
     self.sequence_end = Func(self.end_sequence)
     #self.interface.test()
     taskMgr.add(self.update)
Esempio n. 2
0
    def __init__(self, filename):
        FSM.__init__(self, 'Game')

        self.savedGame = PlayerFileParser("save.xml")
        self.playerData = self.savedGame.playerData
        self.playerData.setShip(shipDb[self.playerData.ship.name])

        self.crosshair = MouseCursor()
        self.crosshair.setMode(1)

        self.mainMenu = MainMenu()
        self.mainMenu.hide()
        self.mainMenu.buttons[0]["command"] = self.request
        self.mainMenu.buttons[0]["extraArgs"] = ["Space"]

        self.mainMenu.buttons[1]["command"] = self.request
        self.mainMenu.buttons[1]["extraArgs"] = ["Ground"]

        self.mainMenu.buttons[3]["command"] = self.quit
        self.mainMenu.buttons[3]["extraArgs"] = [0]

        #self.groundGui = GroundGui(self.playerData)
        #self.groundWorldManager = GroundManager(self)

        #self.spaceWorldManager = SpaceOdeWorldManager(self)

        self.prevState = None

        self.trans = Transitions(loader)

        self.request("IntroMainMenu")
Esempio n. 3
0
 def __init__(self):
     self.notify = DirectNotifyGlobal.directNotify.newCategory(
         "Starting Make A Toon.")
     self.localAvatar = LocalAvatar.toonBody
     base.localAvatar = self.localAvatar
     self.toonColors = Localizer.toonColorDict
     self.colorNum = 0
     self.numColors = Localizer.numColors
     self.MakeAToonText = Localizer.MakeAToonText
     self.Mickey = Localizer.Mickey
     self.mickeyFont = loader.loadFont(
         'phase_3/models/fonts/MickeyFont.bam')
     self.Text = OnscreenText(text="Make A Toon",
                              pos=(0, 0.75),
                              font=self.mickeyFont,
                              fg=(1, 0, 0, 1),
                              scale=(0.2, 0.2, 0.2))
     self.gui = loader.loadModel(
         'phase_3/models/gui/tt_m_gui_mat_mainGui.bam')
     self.gui.flattenMedium()
     self.gui1 = loader.loadModel(
         'phase_3/models/gui/create_a_toon_gui.bam')
     self.gui2 = loader.loadModel('phase_3/models/gui/gui_toongen.bam')
     self.guiNextUp = self.gui.find('**/tt_t_gui_mat_nextUp')
     self.transition = Transitions(loader)
     self.transition.irisIn(1)
     self.transition.fadeIn(5)
     self.load()
 def initTransitions(self):
     self.transitions = Transitions(loader)
     self.transitions.setFadeColor(0, 0, 0)
     self.transitionTime = 0.2
     base.accept("fadeOut", self.transitions.fadeOut, [self.transitionTime])
     base.accept("fadeIn", self.transitions.fadeIn, [self.transitionTime])
     base.accept("noFade", self.transitions.noFade)
Esempio n. 5
0
    def __init__(self):
        #utilitaires
        self.analyse = AnalyseDTOJoueur()
        self.labels = []
        self.drs = []
        self.sequences = []
        self.tankModels = []

        # champs de textes
        #le frame du haut
        self.ajouterTopFrame()

        # Background image
        # on a commenté le background, pcq ca cachait les scènes pour les deux chars
        # self.background = OnscreenImage(parent = render2d , image = '../asset/Menu/menuLogin.png', )

        #On dit à la caméra que le dernier modèle doit s'afficher toujours en arrière
        self.baseSort = base.cam.node().getDisplayRegion(0).getSort()
        base.cam.node().getDisplayRegion(0).setSort(20)

        self.controlTextScale = 0.10
        self.controlBorderWidth = (0.005, 0.005)

        #Initialisation de l'effet de transition
        curtain = loader.loadTexture("../asset/Menu/loading.jpg")

        self.transition = Transitions(loader)
        self.transition.setFadeColor(0, 0, 0)
        self.transition.setFadeModel(curtain)

        self.sound = loader.loadSfx("../asset/Menu/demarrage.mp3")

        self.testerConnexion()
Esempio n. 6
0
    def __init__(self):
        ShowBase.__init__(self)
        self.disableMouse()

        props = WindowProperties()
        props.setTitle('Test')
        self.win.requestProperties(props)

        # self.render.setAntiAlias(AntialiasAttrib.MAuto)

        self.transitions = Transitions(self.loader)
        self.transitions.setFadeColor(0, 0, 0)

        self.filters = CommonFilters(self.win, self.cam)
        # self.filters.setCartoonInk()
        self.filters.setBlurSharpen(1)
        # self.filters.setVolumetricLighting(self.render)

        # self.buffer = self.win.makeTextureBuffer("Post-processing buffer", self.win.getXSize(), self.win.getXSize())
        # print self.buffer.getYSize()
        # self.texture = self.buffer.getTexture()
        # self.buffer.setSort(-100)
        #
        # self.originalCamera = self.camera
        # self.offScreenCamera = self.makeCamera(self.buffer)
        # self.camera = self.offScreenCamera
        #
        # self.img = OnscreenImage(image=self.texture, pos=(0, 0, 0.5))

        self.scene = None
        self.channel = Channel()
    def __init__(self):
        self.accept("AllerChoixNiveau", self.ouvrirMenu)
        self.sound = loader.loadSfx("../asset/Menu/demarrage.mp3")
        curtain = loader.loadTexture("../asset/Menu/loading.jpg")

        self.transition = Transitions(loader)
        self.transition.setFadeColor(0, 0, 0)
        self.transition.setFadeModel(curtain)
        self.baseSort = base.cam.node().getDisplayRegion(0).getSort()
        base.cam.node().getDisplayRegion(0).setSort(20)
Esempio n. 8
0
 def __init__(self):
     self.trans = Transitions(loader)
     self.scene = render.getPythonTag('SceneManager').createScene(
         'Make-A-Toon')
     self.setupEnvironment()
     self.randomizeData()
     self.setupHUD()
     self.bgm = SoundBank.getSound('make_a_toon')
     self.bgm.setLoop(True)
     self.bgm.play()
Esempio n. 9
0
    def __init__(self):
        ShowBase.__init__(self)
        add_device_listener(
            config_file='keybindings.toml',
            assigner=SinglePlayerAssigner(),
        )
        base.disableMouse()
        self.sound = SoundManager()
        self.linefx = LineEffects()
        self.cardmaker = CardMaker("card")
        self.cardmaker.set_frame(-1,1,-1,1)
        self.turn_speed = 0.3 #length of turn animation in seconds
        self.sequence_player = SequencePlayer()
        self.transition = Transitions(loader)
        self.interface = Interface()
        self.bg_color = VBase4(0, 0, 0, 1)
        self.innitialize_fov()

        card, scene, camera, self.buffer = self.make_render_card()
        card.set_x(-0.25)
        self.camera = camera
        self.load_icons()

        self.texts = Texts(camera)
        self.pause = True
        self.instruct = True
        self.gameover = False
        self.won = False

        self.player = Player((0,0,0))
        self.map = Map()
        self.map.new_game()

        camera.reparent_to(self.player.root)
        camera.set_pos(4,-4,8)
        camera.look_at(self.player.root)
        camera.set_compass()
        base.task_mgr.add(self.update)

        card, scene, camera, buffer = self.make_render_card([3,7],[64,256],(0,100))
        self.hudgun = Actor("assets/models/hand.bam")
        self.hudgun.reparent_to(scene)
        self.hudgun.find("**/hand_healthy").show()
        self.hudgun.find("**/hand_hurt").hide()
        self.hudgun.setLODAnimation(1, 0.1, 0.005)
        self.player.weapon.set_hud_bullets()
        camera.look_at(self.hudgun)
        camera.set_pos(0.5,-1.5,10)
        camera.set_p(-90)
        card.set_scale(1/4,1,1)
        card.set_x(1-(1/4))
        self.quad = None
        self.setup_post_effect()
Esempio n. 10
0
    def __init__(self):
        base.enableParticles()  # noqa: F821
        render.setShaderAuto()  # noqa: F821

        self._explosion_lights = self._set_explosion_lights()

        self._transition = Transitions(loader)  # noqa: F821
        self._transition.setFadeColor(0, 0, 0)

        self.stench_effect = Stench()
        self.love_fog = LoveFog()

        filters = CommonFilters(base.win, base.cam)  # noqa: F821
        filters.setBloom(size="large", mintrigger=0.8, intensity=2.1)
    def __init__(self):

        #Image d'arrière plan
        self.background = OnscreenImage(
            parent=render2d, image="../asset/Menu/menuPrincipal.jpg")

        #On dit à la caméra que le dernier modèle doit s'afficher toujours en arrière
        self.baseSort = base.cam.node().getDisplayRegion(0).getSort()
        base.cam.node().getDisplayRegion(0).setSort(20)

        #Titre du jeu
        self.textTitre = OnscreenText(text="Tankem!",
                                      pos=(0, 0.6),
                                      scale=0.32,
                                      fg=(0.8, 0.9, 0.7, 1),
                                      align=TextNode.ACenter)

        #Boutons
        btnScale = (0.18, 0.18)
        text_scale = 0.12
        borderW = (0.04, 0.04)
        couleurBack = (0.243, 0.325, 0.121, 1)
        separation = 0.5
        hauteur = -0.6
        self.b1 = DirectButton(text=("Jouer", "!", "!", "disabled"),
                               text_scale=btnScale,
                               borderWidth=borderW,
                               text_bg=couleurBack,
                               frameColor=couleurBack,
                               relief=2,
                               command=self.chargeJeu,
                               pos=(-separation, 0, hauteur))

        self.b2 = DirectButton(text=("Quitter", "Bye!", ":-(", "disabled"),
                               text_scale=btnScale,
                               borderWidth=borderW,
                               text_bg=couleurBack,
                               frameColor=couleurBack,
                               relief=2,
                               command=lambda: sys.exit(),
                               pos=(separation, 0, hauteur))
        #Initialisation de l'effet de transition
        curtain = loader.loadTexture("../asset/Menu/loading.jpg")

        self.transition = Transitions(loader)
        self.transition.setFadeColor(0, 0, 0)
        self.transition.setFadeModel(curtain)

        self.sound = loader.loadSfx("../asset/Menu/demarrage.mp3")
    def initgame(self):
        self.transition = Transitions(loader)
        self.getparameters()

        self.GameOver = False
        self.BlackScreen = 0

        self.p_ID = self.b.get()
        self.p_age = self.d.get()
        self.p_gender = self.f.get()

        self.file = open(
            'logs/Reversal3D_end30_5of6_logfile_' + str(self.p_ID) + '.txt',
            'w')
        # added two extra columns to the log file
        self.file.write(
            "%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t"
            % ("pID", "Age", "Gender", "TrialNumber", "Reversal", "Target",
               "Choice", "NovelBox", "PrevReward", "Correct", "TotalScore",
               "RunningTotal", "Last6TrialsTotal", "TrialNumPhase",
               "VisitColor0", "VisitColor1", "VisitColor2", "VisitColor3",
               "Visits0", "Visits1", "Visits2", "Visits3", "ResponseTime"))

        print "ID:", self.p_ID, "Gender:", self.p_gender, "Age:", self.p_age

        print "ID:", self.p_ID, "Gender:", self.p_gender, "Age:", self.p_age

        self.rungame = True
        self.TotalScore = 0
        self.RunningTotal = 0
        self.trial_no = -1
        self.new_trial = True
        self.end_aq_after = 30
        self.end_rev_after = 30
        self.trial_num_phase = 0

        self.reverse_now = False
        self.TrialScoreList = []
        self.TrialScoreLastFiveSix = []
        self.LastFiveSixCount = 0

        self.novel_box = []
        self.previous_reward = []

        # when starting a new trial, pick gender and kiki parameters
        self.new_trial = True
        if self.p_gender == "Male":
            self.kiki = CreateActor("Models/baseboy.x",
                                    "textures/baseboy2.png", 0, 0, 0, 0)
        else:
            self.kiki = CreateActor("Models/kiki.x", "textures/kiki.jpg", 0, 0,
                                    0, 0)
        self.kiki.currentframe = 0
        self.kiki.reparentTo(self.render)
        self.isTurning = False
        self.lag = 0
        self.ScoreText = None

        # how often screen refreshes
        self.framerate = 30
        globalClock.setMode(ClockObject.MLimited)
        globalClock.setFrameRate(self.framerate)
        self.frames = [
            int(round(i)) for i in np.arange(0, 1200, 60. / self.framerate)
        ]
        # creating the boxes
        self.present1 = CreateActor("Models/test.x",
                                    "textures/presentgrey.png", 0, 0, 0, 0)
        self.present1.reparentTo(self.render)
        self.present2 = CreateActor("Models/test.x",
                                    "textures/presentgrey.png", 0, 0, 0, 0)
        self.present2.reparentTo(self.render)
        self.present3 = CreateActor("Models/test.x",
                                    "textures/presentgrey.png", 0, 0, 0, 0)
        self.present3.reparentTo(self.render)
        self.present4 = CreateActor("Models/test.x",
                                    "textures/presentgrey.png", 0, 0, 0, 0)
        self.present4.reparentTo(self.render)
        self.presents = [
            self.present1, self.present2, self.present3, self.present4
        ]

        self.texgrey = loader.loadTexture("textures/presentgrey.png")
        if self.boxcol == "A":
            self.tex1 = loader.loadTexture("textures/presentblue.png")
            self.tex2 = loader.loadTexture("textures/presentyellow.jpg")
            self.tex3 = loader.loadTexture("textures/presentpink.jpg")
            self.tex4 = loader.loadTexture("textures/presentgreen.png")
            self.tex5 = loader.loadTexture("textures/presentpurple.png")
        else:
            self.tex1 = loader.loadTexture("textures/presentbrown.jpg")
            self.tex2 = loader.loadTexture("textures/presentorange.png")
            self.tex3 = loader.loadTexture("textures/presentred.png")
            self.tex4 = loader.loadTexture("textures/presentgreys.png")
            self.tex5 = loader.loadTexture("textures/presentlightpurple.png")

        self.textures = [self.tex1, self.tex2, self.tex3, self.tex4]
        # making the star and positions
        self.star = self.loader.loadModel("Models/star.x")
        tex = loader.loadTexture("textures/gold_texture.jpg")
        self.star.setTexture(tex)
        self.star.setScale(self.starsize)
        self.star.setPos(0, 0, 3)
        # making the black cloud and their positions
        self.clouds = CreateActor("Models/clouds.x", "textures/cotton.jpg", 0,
                                  0, 0, 0)
        self.star.setScale(self.cloudsize)
        # setting up the room environment
        self.environ = self.loader.loadModel("Models/Room.x")
        self.environ.reparentTo(self.render)

        # setting the wall colors - note that Reversal task uses set "A" and
        # practice task uses set B
        if self.wallcol == "A":
            tex = loader.loadTexture("textures/arena.png")
        else:  # set B
            tex = loader.loadTexture("textures/room2.png")
        self.environ.setTexture(tex)
        self.environ.setScale(2, 2, 2)
        self.environ.setPos(0, 0, 0)

        self.starLoc = []
        for i in range(4):
            for j in range(10):
                self.starLoc.append([i, j])

        self.floater = NodePath(PandaNode("floater"))
        self.floater.reparentTo(self.kiki)
        self.floater.setZ(2.0)

        self.angle = -2 * np.pi * self.kiki.getH() / 360

        alight = AmbientLight('alight')
        alight.setColor(VBase4(2, 2, 2, 1))
        alnp = render.attachNewNode(alight)
        render.setLight(alnp)
        self.plight = PointLight('plight')
        self.plight.setColor(VBase4(0, 0, 0, 0))
        self.plnp = render.attachNewNode(self.plight)

        #animation frames:
        self.runframe = get_frames(1, 40, self.framerate)
        self.digframe = get_frames(60, 240, self.framerate)
        self.presentsframe = get_frames(0, 180, self.framerate)
        self.winframe = get_frames(320, 360, self.framerate)
        self.losingframe = get_frames(380, 460, self.framerate)
        self.dragframe = get_frames(242, 302, self.framerate)
        self.cloudsframe = get_frames(0, 180, self.framerate)

        # this is the new way to randomize the correct box for each subject
        # this will also reset for reversal
        # correct box is never going to be #3!
        # so then number 3 choice is novel!
        self.correctbox = fluffle([0, 1, 2])[0]  #np.random.randint(0,3)
        self.reversal = 0

        self.savelog = False
        # we don't have the joystick version
        # will always print error in console
        self.joystickon = 0

        try:
            if joystick.get_count() > 0:
                self.joystickon = 1
                self.joystick = joystick.Joystick(0)
                self.joystick.init()
        except:
            print "Joystick Error"
            self.joystickon = 0
Esempio n. 13
0
	def __init__(self, gameLogic,mapID,mapName):
		self.gameLogic = gameLogic
		self.mapID = mapID
		self.mapName = mapName
		self.user = common.internal.UtilisateursDAODTO.DAOutilisateur.DAOutilisateur()
		self.wait = True
		#Image d'arrière plan
		self.background=OnscreenImage(parent=render2d, image="../asset/Menu/BackgroundLogin.jpg")

		#On dit à la caméra que le dernier modèle doit s'afficher toujours en arrière
		self.baseSort = base.cam.node().getDisplayRegion(0).getSort()
		base.cam.node().getDisplayRegion(0).setSort(20)

		#Variables utiles
		btnScale = (0.06,0.06)
		text_scale = 0.12
		borderW = (0.02, 0.02)
		separation = 1
		hauteur = -0.6
		numItemsVisible = 50
		self.couleurBack = (0.243,0.325,0.321,1)
		self.player1ready = False
		self.player2ready = False
		self.player1Infos = ""
		self.player2Infos = ""
		self.couleurDisabled = (0.343,0.325,0.321,1)
		self.couleurBGLabel = (255,255,255,0.3)
		self.couleurShadow = (200,200,200,0.8)
		self.couleurFG = (0,0,0,1)
		self.joueur1 = ""
		self.joueur2 = ""
		self.username1 = ""
		self.username2 = ""
		self.p1Logged = False
		self.p2Logged = False
		#Titre du jeu
		base.disableMouse()
		
		

		# fields dans lesquels on peut écrire
		self.fieldUsername1 = DirectEntry(text = "" ,scale=.05,
									initialText="", 
									numLines = 1,
									focus=1,
									pos=(-4,0,0.82) )
		self.fieldUsername2 = DirectEntry(text = "" ,scale=.05,
									initialText="", 
									numLines = 1,
									focus=0,
									pos=(3.4,0,0.82) )
		self.fieldPassword1 = DirectEntry(text = "" ,scale=.05,
									initialText="", 
									numLines = 1,
									focus=0,
									pos=(-4,0,0.59),
									obscured=1 )
		self.fieldPassword2 = DirectEntry(text = "" ,scale=.05,
									initialText="", 
									numLines = 1,
									focus=0,
									pos=(3.4,0,0.59),
									obscured=1 )
		self.messageBox = DirectEntry(text = "" ,scale=.05,
									width =55,
									initialText="Veuillez vous connecter à Tank'em", 
									numLines = 1,
									focus=0,
									pos=(-10.35,0,0.3),
									focusInCommand=self.clearText )
		
		# Labels et fields qui doivent subir des lerps
		# textnotes / notes aspect2d sont beaucoup plus sympatoches à travailler.
		self.textLabel1 = TextNode('testLabel1')
		self.textLabel1.setText("Player1")
		self.textLabel1.setTextColor(0,0,0,1)
		self.textLabel1.setShadow(0.05,0.05)
		self.textLabel1.setShadowColor(self.couleurShadow)
		self.textLabel1.setCardColor(self.couleurBGLabel)
		self.textLabel1.setCardAsMargin(0, 0, 0, 0)
		self.textLabel1.setCardDecal(True)
		self.textLabel1.setAlign(TextNode.ACenter)
		self.nodeLabel1 = aspect2d.attachNewNode(self.textLabel1)
		self.nodeLabel1.setScale(0.10)
		self.nodeLabel1.setPos(-3.75,0,0.9)

		self.textLabel2 = TextNode('textLabel2')
		self.textLabel2.setText("Player2")
		self.textLabel2.setTextColor(0,0,0,1)
		self.textLabel2.setShadow(0.05,0.05)
		self.textLabel2.setShadowColor(self.couleurShadow)
		self.textLabel2.setCardColor(self.couleurBGLabel)
		self.textLabel2.setCardAsMargin(0, 0, 0, 0)
		self.textLabel2.setCardDecal(True)
		self.textLabel2.setAlign(TextNode.ACenter)
		self.nodeLabel2 = aspect2d.attachNewNode(self.textLabel2)
		self.nodeLabel2.setScale(0.10)
		self.nodeLabel2.setPos(3.65,0,0.9)

		self.textPassword1 = TextNode('textPassword1')
		self.textPassword1.setText("Password")
		self.textPassword1.setTextColor(0,0,0,1)
		self.textPassword1.setShadow(0.05,0.05)
		self.textPassword1.setShadowColor(self.couleurShadow)
		self.textPassword1.setCardColor(self.couleurBGLabel)
		self.textPassword1.setCardAsMargin(0, 0, 0, 0)
		self.textPassword1.setCardDecal(True)
		self.textPassword1.setAlign(TextNode.ACenter)
		self.nodePassword1 = aspect2d.attachNewNode(self.textPassword1)
		self.nodePassword1.setScale(0.10)
		self.nodePassword1.setPos(-3.75,0,0.67)

		self.textPassword2 = TextNode('textPassword2')
		self.textPassword2.setText("Password")
		self.textPassword2.setTextColor(0,0,0,1)
		self.textPassword2.setShadow(0.05,0.05)
		self.textPassword2.setShadowColor(self.couleurShadow)
		self.textPassword2.setCardColor(self.couleurBGLabel)
		self.textPassword2.setCardAsMargin(0, 0, 0, 0)
		self.textPassword2.setCardDecal(True)
		self.textPassword2.setAlign(TextNode.ACenter)
		self.nodePassword2 = aspect2d.attachNewNode(self.textPassword2)
		self.nodePassword2.setScale(0.10)
		self.nodePassword2.setPos(3.65,0,0.67)

		self.textMessagebox = TextNode('textMessagebox')
		self.textMessagebox.setText("Message box")
		self.textMessagebox.setTextColor(0,0,0,1)
		self.textMessagebox.setShadow(0.05,0.05)
		self.textMessagebox.setShadowColor(self.couleurShadow)
		self.textMessagebox.setCardColor(self.couleurBGLabel)
		self.textMessagebox.setCardAsMargin(0, 0, 0, 0)
		self.textMessagebox.setCardDecal(True)
		self.textMessagebox.setAlign(TextNode.ACenter)
		self.nodeMessagebox = aspect2d.attachNewNode(self.textMessagebox)
		self.nodeMessagebox.setScale(0.10)
		self.nodeMessagebox.setPos(-3.05,0,0.4)

		self.textJoueur1 = TextNode('textJoueur1')
		self.textJoueur1.setText("")
		self.textJoueur1.setTextColor(0,0,0,1)
		self.textJoueur1.setShadow(0.05,0.05)
		self.textJoueur1.setShadowColor(self.couleurShadow)
		self.textJoueur1.setCardColor(self.couleurBGLabel)
		self.textJoueur1.setCardAsMargin(0, 0, 0, 0)
		self.textJoueur1.setCardDecal(True)
		self.textJoueur1.setAlign(TextNode.ACenter)
		self.nodeJoueur1 = aspect2d.attachNewNode(self.textJoueur1)
		self.nodeJoueur1.setScale(0)
		self.nodeJoueur1.setPos(0.014,0,0.1)

		self.textJoueur2 = TextNode('textJoueur2')
		self.textJoueur2.setText("")
		self.textJoueur2.setTextColor(0,0,0,1)
		self.textJoueur2.setShadow(0.05,0.05)
		self.textJoueur2.setShadowColor(self.couleurShadow)
		self.textJoueur2.setCardColor(self.couleurBGLabel)
		self.textJoueur2.setCardAsMargin(0, 0, 0, 0)
		self.textJoueur2.setCardDecal(True)
		self.textJoueur2.setAlign(TextNode.ACenter)
		self.nodeJoueur2 = aspect2d.attachNewNode(self.textJoueur2)
		self.nodeJoueur2.setScale(0)
		self.nodeJoueur2.setPos(0.014,0,-0.3)

		self.textVersus = TextNode('textVersus')
		self.textVersus.setText("VERSUS")
		self.textVersus.setTextColor(0,0,0,1)
		self.textVersus.setShadow(0.05,0.05)
		self.textVersus.setShadowColor(self.couleurShadow)
		self.textVersus.setCardColor(self.couleurBGLabel)
		self.textVersus.setCardAsMargin(0, 0, 0, 0)
		self.textVersus.setCardDecal(True)
		self.textVersus.setAlign(TextNode.ACenter)
		self.nodeVersus = aspect2d.attachNewNode(self.textVersus)
		self.nodeVersus.setScale(0)
		self.nodeVersus.setPos(0.014,0,-0.1)

		self.textCombattre = TextNode('textCombattre')
		self.textCombattre.setText("Combattrons dans l'arène :")
		self.textCombattre.setTextColor(0,0,0,1)
		self.textCombattre.setShadow(0.05,0.05)
		self.textCombattre.setShadowColor(self.couleurShadow)
		self.textCombattre.setCardColor(self.couleurBGLabel)
		self.textCombattre.setCardAsMargin(0, 0, 0, 0)
		self.textCombattre.setCardDecal(True)
		self.textCombattre.setAlign(TextNode.ACenter)
		self.nodeCombattre = aspect2d.attachNewNode(self.textCombattre)
		self.nodeCombattre.setScale(0)
		self.nodeCombattre.setPos(0.014,0,-0.5)

		self.textFavoris = TextNode('textFavoris')
		self.textFavoris.setText("")
		self.textFavoris.setTextColor(0,0,0,1)
		self.textFavoris.setShadow(0.05,0.05)
		self.textFavoris.setShadowColor(self.couleurShadow)
		self.textFavoris.setCardColor(self.couleurBGLabel)
		self.textFavoris.setCardAsMargin(0, 0, 0, 0)
		self.textFavoris.setCardDecal(True)
		self.textFavoris.setAlign(TextNode.ACenter)
		self.nodeFavoris = aspect2d.attachNewNode(self.textFavoris)
		self.nodeFavoris.setScale(0)
		self.nodeFavoris.setPos(0.014,0,-0.9)

		self.textNiveau = TextNode('textNiveau')
		self.textNiveau.setText("")
		self.textNiveau.setTextColor(0,0,0,1)
		self.textNiveau.setShadow(0.05,0.05)
		self.textNiveau.setShadowColor(self.couleurShadow)
		self.textNiveau.setCardColor(self.couleurBGLabel)
		self.textNiveau.setCardAsMargin(0, 0, 0, 0)
		self.textNiveau.setCardDecal(True)
		self.textNiveau.setAlign(TextNode.ACenter)
		self.nodeNiveau = aspect2d.attachNewNode(self.textNiveau)
		self.nodeNiveau.setScale(0)
		self.nodeNiveau.setPos(0.014,0,-0.7)
		
		# Bouttons nécéssaires.
		self.loginP1 = DirectButton(text = ("Login", "Login", "Login", "Login"),
						  text_scale=btnScale,
						  borderWidth = borderW,
						  text_bg=self.couleurBack,
						  frameColor=self.couleurBack,
						  relief=2,
						  textMayChange = 1,
						  pad = (0,0),
						  command = self.setPlayerReady,
						  extraArgs = [True,1],
						  pos = (-3.75,0,0.45))
		self.loginP2 = DirectButton(text = ("Login", "Login", "Login", "Login"),
						  text_scale=btnScale,
						  borderWidth = borderW,
						  text_bg=self.couleurBack,
						  frameColor=self.couleurBack,
						  relief=2,
						  textMayChange = 1,
						  pad = (0,0),
						  command = self.setPlayerReady,
						  extraArgs = [True,2],
						  pos = (3.65,0,0.45))
		self.buttonPlay = DirectButton(text = ("Play", "Play", "Play", "Play"),
						  text_scale=btnScale,
						  borderWidth = borderW,
						  text_bg=self.couleurDisabled,
						  frameColor=self.couleurDisabled,
						  relief=2,
						  textMayChange = 1,
						  pad = (0,0),
						  state = DGG.DISABLED,
						  command = self.setNiveauChoisi,
						  extraArgs = [self.mapID],
						  pos = (-3.05,0.4,0.67))

		self.buttonSite = DirectButton(text = ("Site internet de Tank'em", "Site internet de Tank'em", "Site internet de Tank'em", "Site internet de Tank'em"),
						  text_scale=btnScale,
						  borderWidth = borderW,
						  text_bg=self.couleurBack,
						  frameColor=self.couleurBack,
						  relief=2,
						  textMayChange = 1,
						  pad = (0,0),
						  command = self.openSite,
						  pos = (1.25,-1.4,-0.9))
	
		self.loginIntro()

		#Ici on call le modèle des tanks et commence l'interval pour les faire tourner en rond
		#Tank1
		self.tankGauche = loader.loadModel("../asset/Tank/tank")		
		self.tankGauche.reparentTo(render)
		self.tankGauche.setPos(-46.5,65,-10)
		self.tankGauche.setScale(6.005,6.005,6.005)
		self.tankGauche.setHpr(180, 0.0, 0.0)
		interval = self.tankGauche.hprInterval(4.0, Vec3(-180, 0, 0))
		self.sequenceTourne = Sequence(interval)
		self.sequenceTourne.loop()
		
		#Tank2
		self.tankDroite = loader.loadModel("../asset/Tank/tank")		
		self.tankDroite.reparentTo(render)
		self.tankDroite.setPos(46.5,65,-10)
		self.tankDroite.setScale(6.005,6.005,6.005)
		self.tankDroite.setHpr(180, 0.0, 0.0)
		interval2 = self.tankDroite.hprInterval(4.0, Vec3(540, 0, 0))
		self.sequenceTourne2 = Sequence(interval2)
		self.sequenceTourne2.loop()

		

		#Initialisation de l'effet de transition
		curtain = loader.loadTexture("../asset/Menu/load.png")

		self.transition = Transitions(loader)
		self.transition.setFadeColor(0, 0, 0)
		self.transition.setFadeModel(curtain)

		self.sound = loader.loadSfx("../asset/Menu/shotgun.mp3")
Esempio n. 14
0
    def __init__(self):
        ShowBase.__init__(self)
        self.cfg = cfgdict("data/default_config.cfg")
        globalClock.setMode(ClockObject.MLimited)
        globalClock.setFrameRate(int(self.cfg["general"]["framerate"]))
        #base.setFrameRateMeter(int(self.cfg["general"]["debug"]))
        self.props = WindowProperties()
        self.props.setSize(tuple(self.cfg["general"]["resolution"]))
        self.props.setFullscreen(int(self.cfg["general"]["fullscreen"]))
        self.props.setCursorHidden(True)
        self.fullscreen = int(self.cfg["general"]["fullscreen"])
        #props.setMouseMode(WindowProperties.M_relative)
        base.win.requestProperties(self.props)
        base.disableMouse()
        base.win.setClearColor((0, 0, 0, 0))
        self.inputs = Inputs(self.cfg["key"])

        #cats=["mainmenu", "parts", "enemies", "items"]
        #for cat in cats: makeWireframe(cat)

        self.hud = HUD(self)

        self.transition = Transitions(loader)
        self.parts_models = getParts("data/models/egg/parts/parts")
        self.enemy_models = getParts("data/models/egg/enemies/enemies")
        self.item_models = getParts("data/models/egg/items/items")

        sounds = [
            "break",
            "error",
            "explosion",
            "hit_a",
            "hit_b",
            "hit_c",
            "scare",
            "select_a",
            "select_b",
            "splurt_a",
            "splurt_b",
            "swallow",
            "step_enemy_a",
            "step_enemy_b",
            "step_enemy_c",
            "step_player",
            "turn",
            "projectile_a",
            "projectile_b",
            "projectile_c",
        ]
        self.sounds = {}
        for sound in sounds:
            self.sounds[sound] = loader.loadSfx("data/sound/" + sound + ".wav")
        self.sounds["step_player"].setVolume(0.3)
        self.act = False
        if self.cfg["general"]["fx"] == 1:
            render.setShaderAuto()
            aspect2d.setShaderAuto()
            filters = CommonFilters(base.win, base.cam)
            filters.setBloom(blend=(0.1, 0.1, 0.1, 0.0),
                             mintrigger=0.0,
                             maxtrigger=0.1,
                             desat=0.0,
                             intensity=0.6,
                             size="small")
Esempio n. 15
0
 def __init__(self):
     self.transitions = Transitions(loader)
Esempio n. 16
0
    def initgame(self):
        self.transition = Transitions(loader)
        self.getparameters()
        
        self.GameOver = False
        self.BlackScreen = 0

        self.p_ID = self.b.get()
        self.p_age = self.d.get()
        self.p_gender = self.f.get()

        self.file = open('logs/Reversal3D_logfile_'+str(self.p_ID)+'.txt', 'w')
        self.file.write("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t" % 
            ("pID","Age","Gender","TrialNumber","Reversal","Target",
            "Choice","Correct","TotalScore","RunningTotal", "TrialNumPhase", 
            "Visits0","Visits1", "Visits2","Visits3","ResponseTime"))
            
        print "ID:", self.p_ID, "Gender:",self.p_gender,"Age:",self.p_age


        self.rungame = True
        self.TotalScore = 0
        self.RunningTotal = 0
        self.trial_no = -1
        self.new_trial = True
        self.end_aq_after = 5
        self.end_rev_after = 5
        self.trial_num_phase = 0
        
        if self.p_gender == "Male":
            self.kiki = CreateActor("Models/baseboy.x","textures/baseboy2.png",0,0,0,0)
        else:
            self.kiki = CreateActor("Models/kiki.x","textures/kiki.jpg",0,0,0,0)
        self.kiki.currentframe= 0
        self.kiki.reparentTo(self.render)
        self.isTurning = False
        self.lag = 0
        self.ScoreText = None
        
        self.framerate = 30
        globalClock.setMode(ClockObject.MLimited)
        globalClock.setFrameRate(self.framerate)
        self.frames = [int(round(i)) for i in np.arange(0,1200,60./self.framerate)]

        self.present1 = CreateActor("Models/test.x","textures/presentgrey.png",0,0,0,0)
        self.present1.reparentTo(self.render)
        self.present2 = CreateActor("Models/test.x","textures/presentgrey.png",0,0,0,0)
        self.present2.reparentTo(self.render)
        self.present3 = CreateActor("Models/test.x","textures/presentgrey.png",0,0,0,0)
        self.present3.reparentTo(self.render)
        self.present4 = CreateActor("Models/test.x","textures/presentgrey.png",0,0,0,0)
        self.present4.reparentTo(self.render)
        self.presents = [self.present1,self.present2,self.present3,self.present4]
        
        self.texgrey = loader.loadTexture("textures/presentgrey.png")
        
        if self.boxcol == "A":
            self.tex1 = loader.loadTexture("textures/presentblue.png")
            self.tex2 = loader.loadTexture("textures/presentyellow.jpg")
            self.tex3 = loader.loadTexture("textures/presentpink.jpg")
            self.tex4 = loader.loadTexture("textures/presentgreen.png")
            self.tex5 = loader.loadTexture("textures/presentpurple.png")
        else:
            self.tex1 = loader.loadTexture("textures/presentbrown.jpg")
            self.tex2 = loader.loadTexture("textures/presentorange.png")
            self.tex3 = loader.loadTexture("textures/presentred.png")
            self.tex4 = loader.loadTexture("textures/presentgreys.png")
            self.tex5 = loader.loadTexture("textures/presentlightpurple.png")
        
        self.textures = [self.tex1,self.tex2,self.tex3,self.tex4]
        
        self.star = self.loader.loadModel("Models/star.x")
        tex = loader.loadTexture("textures/gold_texture.jpg")
        self.star.setTexture(tex)
        self.star.setScale(self.starsize)
        self.star.setPos(0, 0, 3)
        
        self.clouds = CreateActor("Models/clouds.x","textures/cotton.jpg",0,0,0,0)
        self.star.setScale(self.cloudsize)
        
        self.environ = self.loader.loadModel("Models/Room.x")
        self.environ.reparentTo(self.render)
        
        if self.wallcol == "A":
            tex = loader.loadTexture("textures/arena.png")
        else:
            tex = loader.loadTexture("textures/room2.png")
        self.environ.setTexture(tex)
        self.environ.setScale(2, 2, 2)
        self.environ.setPos(0, 0, 0)

        self.starLoc = []
        for i in range(4):
            for j in range(10):
                self.starLoc.append([i,j])
        
        self.floater = NodePath(PandaNode("floater"))
        self.floater.reparentTo(self.kiki)
        self.floater.setZ(2.0)
        
        self.angle = -2*np.pi*self.kiki.getH()/360
        
        alight = AmbientLight('alight')
        alight.setColor(VBase4(2, 2, 2, 1))
        alnp = render.attachNewNode(alight)
        render.setLight(alnp)
        self.plight = PointLight('plight')
        self.plight.setColor(VBase4(0, 0, 0, 0))
        self.plnp = render.attachNewNode(self.plight)
        
        #animation frames:
        self.runframe = get_frames(1,40,self.framerate)
        self.digframe = get_frames(60,240,self.framerate)
        self.presentsframe = get_frames(0,180,self.framerate)
        self.winframe = get_frames(320,360,self.framerate)
        self.losingframe = get_frames(380,460,self.framerate)
        self.dragframe = get_frames(242,302,self.framerate)
        self.cloudsframe = get_frames(0,180,self.framerate)

        self.correctbox = fluffle([0,1,2])[0] #np.random.randint(0,3)
        self.reversal = 0

        self.savelog = False

        self.joystickon = 0

        try:
            if joystick.get_count() > 0:
                self.joystickon = 1
                self.joystick = joystick.Joystick(0)
                self.joystick.init()
        except:
            print "Joystick Error" 
            self.joystickon = 0
    def __init__(self, mapID, tObj, aObj):

        self.mapID = mapID

        # EX: maps/map-1/map-1.yetimap
        metaFile = open(
            "../maps/map" + str(self.mapID) + "/map" + str(self.mapID) +
            ".yetimap", 'r')
        metaLines = metaFile.readlines()
        lineCount = len(metaLines)
        self.snowflakeCount = lineCount - 2
        self.snowCount = 0

        # First Line: Player's starting position
        # EX: 50,50,50 (NO SPACES)
        playerLine = metaLines[0]
        playerPosList = playerLine.split(",")
        playerInitX = int(playerPosList[0])
        playerInitY = int(playerPosList[1])
        playerInitZ = int(playerPosList[2])
        self.playerStart = Point3(playerInitX, playerInitY, playerInitZ)

        # 2nd Line: Deathzone Height
        # ONE INTEGER
        self.deathHeight = int(metaLines[1])

        # Get dem snowflakes
        self.snowflakePositions = []
        print("Snowflake Count: " + str(self.snowflakeCount))
        for i in xrange(0, self.snowflakeCount):
            sfline = metaLines[i + 2]
            sfList = sfline.split(",")
            sfx = int(sfList[0])
            sfy = int(sfList[1])
            sfz = int(sfList[2])
            self.snowflakePositions.append(Point3(sfx, sfy, sfz))
            print("New snowflake to add: (" + str(sfx) + "," + str(sfy) + "," +
                  str(sfz) + ")")

        #load in controls
        ctrlFl = open("ctrConfig.txt")
        #will skip n lines where [n,]
        #makes a list of controls
        self.keymap = eval(ctrlFl.read())
        #close file
        ctrlFl.close()

        # Create new instances of our various objects
        self.mapName = str(mapID)
        self.audioMgr = aObj
        self.worldObj = self.setupWorld()
        self.heightMap = self.setupHeightmap(self.mapName)
        self.deathZone = self.setupDeathzone(self.deathHeight)
        self.debugNode = self.setupDebug()

        # Player Init
        self.playerObj = SMPlayer(self.worldBullet, self.worldObj, self,
                                  self.playerStart, self.audioMgr)
        self.playerNP = self.playerObj.getNodePath()
        self.playerNP.setH(180)
        self.canUseShift = True
        self.canAirDash = True

        # Snowball Init
        self.ballObj = SMBall(self.worldBullet, self.worldObj, self.playerObj,
                              self.playerNP)
        self.sbCollideFlag = False
        self.ballNP = self.ballObj.getNodePath()

        # Key Handler
        self.kh = SMKeyHandler()
        self.lastMousePos = self.kh.getMouse()

        # Collision Handler
        self.colObj = self.setupCollisionHandler()

        # Lighting
        self.ligObj = SMLighting(Vec4(.4, .4, .4, 1), Vec3(-5, -5, -5),
                                 Vec4(2.0, 2.0, 2.0, 1.0))

        # Camera
        self.camObj = SMCamera(self.playerObj, self.worldBullet, self.worldObj)
        self.cameraControl = False

        # GUI
        self.GUI = SMGUI()
        self.snowflakeCounter = SMGUICounter(
            "snowflake",
            self.snowflakeCount)  # Replace 3 with # of snowflakes in level.
        self.snowMeter = SMGUIMeter(100)
        self.GUI.addElement("snowflake", self.snowflakeCounter)
        self.GUI.addElement("snowMeter", self.snowMeter)

        #Snowy Outside
        # base.enableParticles()
        # self.p = ParticleEffect()
        # self.p.cleanup()
        # self.p = ParticleEffect()
        # self.p.loadConfig('snow.ptf')
        # self.p.start(self.camObj.getNodePath())
        # self.p.setPos(0.00, 0.500, 0.000)

        # AI
        # self.goat1 = SMAI("../res/models/goat.egg", 75.0, self.worldBullet, self.worldObj, -70, -95, 5)
        # self.goat1.setBehavior("flee", self.playerNP)
        # self.goat2 = SMAI("../res/models/goat.egg", 75.0, self.worldBullet, self.worldObj, -80, -83, 5)
        # self.goat2.setBehavior("flee", self.playerNP)
        # print("AI Initialized")

        # Debug Text
        self.textObj = tObj
        self.textObj.addText("yetiPos", "Position: ")
        self.textObj.addText("yetiVel", "Velocity: ")
        self.textObj.addText("yetiFric", "Friction: ")
        self.textObj.addText("onIce", "Ice(%): ")
        self.textObj.addText("onSnow", "Snow(%): ")
        self.textObj.addText("terrHeight", "T Height: ")
        self.textObj.addText("terrSteepness", "Steepness: ")

        # Pause screen transition
        self.transition = Transitions(loader)

        # Method-based keybindings
        # self.accept('b', self.spawnBall)
        self.accept('escape', base.userExit)
        self.accept('enter', self.pauseUnpause)
        self.accept('f1', self.toggleDebug)

        self.accept('lshift-up', self.enableShiftActions)
        self.accept('mouse1', self.enableCameraControl)
        self.accept('mouse1-up', self.disableCameraControl)
        self.accept('wheel_up', self.camObj.zoomIn)
        self.accept('wheel_down', self.camObj.zoomOut)

        self.pauseUnpause()

        # Disable the mouse
        base.disableMouse()
        props = WindowProperties()
        props.setCursorHidden(True)
        base.win.requestProperties(props)

        # Uncomment this to see everything being rendered.
        self.printSceneGraph()

        # Play the BGM
        self.audioMgr.playBGM("snowmanWind")

        # Skybox formed
        skybox = loader.loadModel("../res/models/skybox.egg")
        # skybox.set_two_sided(true)
        skybox.setScale(500)
        skybox.setPos(0, 0, -450)
        skybox.reparentTo(render)

        mountain = loader.loadModel("../res/models/mountain.egg")
        mountain.reparentTo(render)
        mountain.setPos(650, 800, 20)
        mountain.setScale(120)

        self.colObjects = []

        self.caveNew = SMCollide("../res/models/cave_new.egg",
                                 self.worldBullet, self.worldObj,
                                 Point3(-50, 95, -13), 11, Vec3(0, 0, 0))
        self.colObjects.append(self.caveNew)

        self.planeFront = SMCollide("../res/models/plane_front",
                                    self.worldBullet, self.worldObj,
                                    Point3(190, -100,
                                           -15), 8, Vec3(190, 0, 30))
        self.colObjects.append(self.planeFront)

        self.caveModel = SMCollide("../res/models/cave_tunnel.egg",
                                   self.worldBullet, self.worldObj,
                                   Point3(233, 68, 32), 4, Vec3(135, 180, 0))
        self.colObjects.append(self.caveModel)

        self.planeTail = SMCollide("../res/models/plane_tail.egg",
                                   self.worldBullet, self.worldObj,
                                   Point3(-40, -130, -7), 10, Vec3(230, 0, 0))
        self.colObjects.append(self.planeTail)

        self.ropeBridge = SMCollide("../res/models/rope_bridge.egg",
                                    self.worldBullet, self.worldObj,
                                    Point3(180, 115, 30), 6, Vec3(50, 0, 0))
        self.colObjects.append(self.ropeBridge)

        self.colObjectCount = len(self.colObjects)

        print("World initialized.")
Esempio n. 18
0
from panda3d.core import VBase4
from direct.distributed import DistributedObject
from direct.gui.DirectGui import DirectLabel, OnscreenText
from direct.interval.IntervalGlobal import Sequence, LerpFunc, Wait, Func
from direct.showbase.Transitions import Transitions
from direct.fsm.State import State
from direct.fsm.ClassicFSM import ClassicFSM
import Timer
from lib.coginvasion.hood import ZoneUtil
from lib.coginvasion.globals import CIGlobals
from lib.coginvasion.gui.Dialog import GlobalDialog
from HeadPanels import HeadPanels
from FinalScoreGUI import FinalScoreGUI
from lib.coginvasion.nametag import NametagGlobals
import random
transitions = Transitions(loader)


def getAlertText(fg=(1, 0.9, 0.3, 1), scale=0.08):
    return OnscreenText(text='',
                        font=CIGlobals.getMickeyFont(),
                        fg=fg,
                        pos=(0, 0.8, 0),
                        scale=scale)


def getAlertPulse(text, toScale1=0.12, toScale2=0.1):
    def change_text_scale(num):
        text.setScale(num)

    seq = Sequence(
Esempio n. 19
0
    def __init__(self, gameLogic):
        self.gameLogic = gameLogic
        #Image d'arrière plan
        self.background = OnscreenImage(parent=render2d,
                                        image="../asset/Menu/background.jpg")

        #On dit à la caméra que le dernier modèle doit s'afficher toujours en arrière
        self.baseSort = base.cam.node().getDisplayRegion(0).getSort()
        base.cam.node().getDisplayRegion(0).setSort(20)

        #Titre du jeu
        self.textTitre = OnscreenText(text="Tank'em!",
                                      pos=(0, 0.6),
                                      scale=0.32,
                                      fg=(0.8, 0.9, 0.7, 1),
                                      align=TextNode.ACenter)

        #Boutons
        btnScale = (0.18, 0.18)
        text_scale = 0.12
        borderW = (0.04, 0.04)
        couleurBack = (0.243, 0.325, 0.121, 1)
        separation = 1
        hauteur = -0.6
        numItemsVisible = 50

        self.b1 = DirectButton(text=("Jouer", "Carnage!", "DESTRUCTION",
                                     "disabled"),
                               text_scale=btnScale,
                               borderWidth=borderW,
                               text_bg=couleurBack,
                               frameColor=couleurBack,
                               relief=4,
                               textMayChange=1,
                               pad=(0.35, 0),
                               command=self.chargeJeu,
                               pos=(separation, 0, hauteur + 0.8))

        self.b2 = DirectButton(text=("Quitter", "Cyka Bliat", "Bye!",
                                     "disabled"),
                               text_scale=btnScale,
                               borderWidth=borderW,
                               text_bg=couleurBack,
                               frameColor=couleurBack,
                               relief=4,
                               textMayChange=1,
                               pad=(0.30, 0),
                               command=lambda: sys.exit(),
                               pos=(separation, 0, hauteur))
        #Scroll list

        self.scrollList = DirectScrolledList(
            frameSize=(-0.4, 0.7, -0.8, 0.8),
            frameColor=(0, 0, 0, 0),
            pos=(-1, 1, 0),
            forceHeight=0.1,
            numItemsVisible=numItemsVisible,
            itemFrame_frameSize=(-0.4, 0.7, -0.5, 0.59),
            itemFrame_pos=(0, 0, 0),
        )

        for map in DTOlistmap.getArrayMaps():
            self.name = map.getName()
            self.i = map.getId()
            self.l = DirectButton(
                text=str(self.i) + " " + self.name,
                text_scale=0.08,
                scale=0.9,
                borderWidth=(0.005, 0.005),
                command=self.menuLogin,
                extraArgs=[self.gameLogic, self.i, self.name])
            self.scrollList.addItem(self.l)

        #Initialisation de l'effet de transition
        curtain = loader.loadTexture("../asset/Menu/load.png")

        self.transition = Transitions(loader)
        self.transition.setFadeColor(0, 0, 0)
        self.transition.setFadeModel(curtain)

        self.sound = loader.loadSfx("../asset/Menu/shotgun.mp3")
    def __init__(self):
        self.frames = []
        self.dao = DAO_Oracle()
        # remplir les maps seulement si la connexion Oracle est fonctionnelle
        if self.dao.getConnexionState():
            self.dao.fill_dto_with_db()
        else:
            self.afficherMessagesOracle()

        # Background image
        self.background = OnscreenImage(parent = render2d , image = '../asset/Menu/tank.jpg')
        
        #On dit à la caméra que le dernier modèle doit s'afficher toujours en arrière
        self.baseSort = base.cam.node().getDisplayRegion(0).getSort()
        base.cam.node().getDisplayRegion(0).setSort(20)

        mapInfo = []
        for i in range(len(DTO.maps)):
            mapInfo.append((DTO.maps[i].titre,DTO.maps[i].id))
            


        self.controlTextScale = 0.10
        self.controlBorderWidth = (0.005,0.005)
        self.scrollItemButtons = self.createAllItems(mapInfo)

        

        verticalOffsetControlButton = 0.225
        verticalOffsetCenterControlButton = -0.02
        self.myScrolledListLabel = DirectScrolledList(

                # bouton Haut et ses parametres
                decButton_pos = (0.0,0.0, verticalOffsetControlButton + verticalOffsetCenterControlButton),
                decButton_text = "Haut",
                decButton_text_scale = 0.08,
                decButton_borderWidth = (0.0025,0.0025),
                decButton_frameSize = (-0.35, 0.35, -0.0375, 0.075),
                decButton_text_fg = (0.15, 0.15, 0.75, 1.0),
                # decButton_clickSound = ("../asset/Menu/btn-Son.mp3"),
                    

                 # bouton bas et ses parametres
                incButton_pos = (0.0, 0.0, -0.625 - verticalOffsetControlButton + verticalOffsetCenterControlButton),
                
                incButton_text = "Bas",
                incButton_text_scale = 0.08,
                incButton_borderWidth = (0.0025, 0.0025),
                incButton_frameSize = (-0.35, 0.35, -0.0375, 0.075),
                incButton_text_fg = (0.15, 0.15, 0.75, 1.0),
                # incButton_clickSound = ("../asset/Menu/btn-Son.mp3"),
                pos = (0, 0, 0.5),

                items = self.scrollItemButtons,

                # nombre de map visible par 'Scroll' ici c'est 3
                numItemsVisible = 5,
                forceHeight = 0.175,
                
                frameSize = (-1.05, 1.05, -0.95, 0.325),
                frameColor = (0.5, 0.5, 0.5, 0.75),

                itemFrame_pos = (0.0, 0.0, 0.0),
                itemFrame_frameSize = (-1.025, 1.025, -0.775, 0.15),
                itemFrame_frameColor = (0.35, 0.35, 0.35, 0.75),
                itemFrame_relief = 1,
            )

        self.quitterButton = DirectButton(

                # les 4 parametres indiques les differents types d'état que le bouton px avoir
                 #( lorsque tu survole lorsque tu clique etc)
                 text = ("Quitter", "Etes-Vous Sur?","Au Revoir!!","disabled"),
                 text_scale = self.controlTextScale,
                 borderWidth = self.controlBorderWidth,
                 relief = 2,
                 pos = (0.0,0.0, -0.75),
                 frameSize = (-0.5,0.5,-0.625, 0.105),
                 command = lambda : sys.exit(),
             )

        #Initialisation de l'effet de transition
        curtain = loader.loadTexture("../asset/Menu/loading.jpg")

        self.transition = Transitions(loader)
        self.transition.setFadeColor(0, 0, 0)
        self.transition.setFadeModel(curtain)

        self.sound = loader.loadSfx("../asset/Menu/demarrage.mp3")
Esempio n. 21
0
    def initgame(self):
        self.transition = Transitions(loader)
        self.getparameters()

        self.GameOver = False
        self.BlackScreen = 0

        self.p_ID = self.b.get()
        self.p_age = self.d.get()
        self.p_gender = self.f.get()
        # set the file saving the data with relevant variables
        self.file = open('logs/Reversal3D_logfile_' + str(self.p_ID) + '.txt',
                         'w')
        self.file.write(
            "%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t" %
            ("pID", "Age", "Gender", "TrialNumber", "Reversal", "Target",
             "Choice", "Correct", "TotalScore", "RunningTotal", "Visits0",
             "Visits1", "Visits2", "Visits3", "ResponseTime"))

        print "ID:", self.p_ID, "Gender:", self.p_gender, "Age:", self.p_age

        # running game to start
        self.rungame = True
        self.TotalScore = 0
        self.RunningTotal = 0
        self.trial_no = -1
        self.new_trial = True
        # setting the character kiki to move
        self.kiki = CreateActor("Models/kiki.x", "textures/kiki.jpg", 0, 0, 0,
                                0)
        self.kiki.currentframe = 0
        self.kiki.reparentTo(self.render)
        # starting without turning, ect.
        self.isTurning = False
        self.lag = 0
        self.ScoreText = None

        self.framerate = 30
        globalClock.setMode(ClockObject.MLimited)
        globalClock.setFrameRate(self.framerate)
        self.frames = [
            int(round(i)) for i in arange(0, 1200, 60. / self.framerate)
        ]

        # making the boxes and the list of all 4 boxes
        self.present1 = CreateActor("Models/test.x",
                                    "textures/presentgrey.png", 0, 0, 0, 0)
        self.present1.reparentTo(self.render)
        self.present2 = CreateActor("Models/test.x",
                                    "textures/presentgrey.png", 0, 0, 0, 0)
        self.present2.reparentTo(self.render)
        self.present3 = CreateActor("Models/test.x",
                                    "textures/presentgrey.png", 0, 0, 0, 0)
        self.present3.reparentTo(self.render)
        self.present4 = CreateActor("Models/test.x",
                                    "textures/presentgrey.png", 0, 0, 0, 0)
        self.present4.reparentTo(self.render)
        self.presents = [
            self.present1, self.present2, self.present3, self.present4
        ]

        self.texgrey = loader.loadTexture("textures/presentgrey.png")

        # set the textures so that when kiki approaches, color changes
        # there are 2 sets of box colors - A and B (counterbalance!)
        if self.boxcol == "A":
            self.tex1 = loader.loadTexture("textures/presentblue.png")
            self.tex2 = loader.loadTexture("textures/presentyellow.jpg")
            self.tex3 = loader.loadTexture("textures/presentred.png")
            self.tex4 = loader.loadTexture("textures/presentpurple.png")
            self.tex5 = loader.loadTexture("textures/presentpink.jpg")
        else:
            self.tex1 = loader.loadTexture("textures/presentbrown.jpg")
            self.tex2 = loader.loadTexture("textures/presentorange.png")
            self.tex3 = loader.loadTexture("textures/presentgreen.png")
            self.tex4 = loader.loadTexture("textures/presentgreys.png")
            self.tex5 = loader.loadTexture("textures/presentlightpurple.png")

        # making the list of textures based on A or B
        self.textures = [self.tex1, self.tex2, self.tex3, self.tex4]

        # setting the star - can change the star size
        self.star = self.loader.loadModel("Models/star.x")
        tex = loader.loadTexture("textures/gold_texture.jpg")
        self.star.setTexture(tex)
        self.star.setScale(self.starsize)
        self.star.setPos(0, 0, 3)
        # setting the black cloud for negative feedback
        self.clouds = CreateActor("Models/clouds.x", "textures/cotton.jpg", 0,
                                  0, 0, 0)
        self.star.setScale(self.cloudsize)
        # setting the room
        self.environ = self.loader.loadModel("Models/Room.x")
        self.environ.reparentTo(self.render)
        # setting the wall color
        # also 2 different wall colors A and B (counterbalance!)
        if self.wallcol == "A":
            tex = loader.loadTexture("textures/arena.png")
        else:
            tex = loader.loadTexture("textures/room2.png")
        self.environ.setTexture(tex)
        self.environ.setScale(2, 2, 2)
        self.environ.setPos(0, 0, 0)

        # setting the start location
        self.starLoc = []
        for i in range(4):
            for j in range(10):
                self.starLoc.append([i, j])
        # keeping track of location?
        self.floater = NodePath(PandaNode("floater"))
        self.floater.reparentTo(self.kiki)
        self.floater.setZ(2.0)

        self.angle = -2 * pi * self.kiki.getH() / 360

        alight = AmbientLight('alight')
        alight.setColor(VBase4(2, 2, 2, 1))
        alnp = render.attachNewNode(alight)
        render.setLight(alnp)
        self.plight = PointLight('plight')
        self.plight.setColor(VBase4(0, 0, 0, 0))
        self.plnp = render.attachNewNode(self.plight)

        #animation frames:
        self.runframe = get_frames(1, 40, self.framerate)
        self.digframe = get_frames(60, 240, self.framerate)
        self.presentsframe = get_frames(0, 180, self.framerate)
        self.winframe = get_frames(320, 360, self.framerate)
        self.losingframe = get_frames(380, 460, self.framerate)
        self.dragframe = get_frames(242, 302, self.framerate)
        self.cloudsframe = get_frames(0, 180, self.framerate)
        # setting the correct box for acquisition phase
        #self.correctbox = random.randint(0,3)
        self.correctbox = 0
        self.reversal = 0
        # don't save the log until the end, when this becomes true
        self.savelog = False
        # this isn't turned on unless you have pygame
        self.joystickon = 0

        try:
            if joystick.get_count() > 0:
                self.joystickon = 1
                self.joystick = joystick.Joystick(0)
                self.joystick.init()
        except:
            print "Joystick Error"
            self.joystickon = 0
 def __init__(self, pat):
     self.t = Transitions(loader)
     self.pickAToon = pat