import bge # Bibliothèque Blender Game Engine (UPBGE) from ct_lib import * # Bibliothèque CodeTower ############################################################################### # ct_cmd.py # @title: Commands for the CodeTower game # @project: CodeTower # @lang: fr # @authors: Philippe Roy # @copyright: Copyright (C) 2022 Philippe Roy # @license: GNU GPL # # En: This game is a tower defense coding game. The towers are driven with Python code. # Fr: Ce simulateur est un jeu du type tower defense où les tours sont à piloter par la programmation Python. # ############################################################################### purple = [0.202, 0.114, 0.521,1] turquoise = [0.051, 0.270, 0.279,1] magenta = [0.799, 0.005, 0.314,1] orange = [0.799, 0.130, 0.063,1] yellow = [0.799, 0.617, 0.021, 1] green = [0.246, 0.687, 0.078, 1] red = [0.799, 0.031, 0.038, 1] ############################################################################### # En: Threads management << DONT CHANGE THIS SECTION >> # Fr: Gestion des tâches (threads) << NE PAS MODIFIER CETTE SECTION >> ############################################################################### threads=[] scene = bge.logic.getCurrentScene() def start(): scene.objects['Terrain']['thread_cmd']=True thread_start(threads, "commands", commands) def stop(): thread_stop(threads, "commands") ############################################################################### # En: Tower commands # Fr: Commandes des tours # # Build a tower : ct_build(x, y, name, color) # - x position (integer) # - y position (integer) # - name (string) # - color (RGB model) : purple, turquoise, magenta, orange, yellow, green, red or [R, G, B, 1] # - Return boolean flag # - True : builded # - False : not builded # # Remove a tower : ct_remove(x, y) # - x position (integer) # - y position (integer) # # Time management (temporization) : ct_tempo(delay) # - delay : delay in seconds (integer) # ############################################################################### def commands(): # Code your commands here ... ct_build(4,5, "Tower #1") ct_build(5,5, "Tower #2", green) ct_build(5,4, "Tower #3") ct_build(4,4, "Tower #4", [0.3, 0.5, 0.5, 1]) ct_build(4,5, "Tower #5") ct_tempo(20) ct_remove(4,4) ct_print("ok") ct_tempo(2) print ("Threads commands #", len(threads)-1, "are arrived -> close them.") # Thread closed << DONT CHANGE THIS LINE >> scene.objects['Terrain']['thread_cmd']=False # End of cycle << DONT CHANGE THIS LINE >>