mirror of
https://forge.apps.education.fr/phroy/codetower.git
synced 2024-01-27 11:35:17 +01:00
101 lines
3.3 KiB
Python
101 lines
3.3 KiB
Python
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,en
|
||
# @authors: Philippe Roy <phroy@phroy.org>
|
||
# @copyright: Copyright (C) 2022 Philippe Roy
|
||
# @license: GNU GPL
|
||
#
|
||
# En: This game is a tower defense coding game. The towers are driven by 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)
|
||
blue = (0.127, 0.456, 1.000, 1)
|
||
|
||
###############################################################################
|
||
# En: Threads management << DONT CHANGE THIS SECTION >>
|
||
# Fr: Gestion des tâches (threads) << NE PAS MODIFIER CETTE SECTION >>
|
||
###############################################################################
|
||
|
||
scene = bge.logic.getCurrentScene()
|
||
|
||
def start():
|
||
scene.objects['Terrain']['thread_cmd']=True
|
||
thread_cmd_start(commands)
|
||
|
||
def stop():
|
||
thread_cmd_stop()
|
||
|
||
def end():
|
||
ct_sleep (2)
|
||
print ("Thread commands is arrived.")
|
||
scene.objects['Terrain']['thread_cmd']=False
|
||
|
||
###############################################################################
|
||
# En: Tower commands
|
||
# Fr: Commandes des tours
|
||
#
|
||
# Build a tower : ct_build (x, y, category, name, color, style)
|
||
# - x position (integer)
|
||
# - y position (integer)
|
||
# - category (string) : "Archer tower", "Mage tower" or "Barrack" (not implemented)
|
||
# - name (string)
|
||
# - color (RGB model) : purple, turquoise, magenta, orange, yellow, green, red or [R, G, B, 1]
|
||
# - style : square or round and version (A,B or C), exemple : 'square-A'
|
||
# - Return boolean flag
|
||
# - True : builded
|
||
# - False : not builded
|
||
# - Exemple : ct_build(1,1, "Archer tower", "Tower #1",yellow,"round-A")
|
||
#
|
||
# Remove a tower : ct_remove (x, y)
|
||
# - x position (integer)
|
||
# - y position (integer)
|
||
#
|
||
# Get your level : ct_level ()
|
||
# - Return your level (integer)
|
||
#
|
||
# Time management (temporization) : ct_sleep (delay)
|
||
# - delay : duration in seconds (float)
|
||
#
|
||
###############################################################################
|
||
|
||
def commands():
|
||
|
||
# Code your commands here ...
|
||
|
||
while True:
|
||
|
||
if ct_level() == 1:
|
||
ct_build(4,5, "Archer tower", "Tower #1", blue, "square-A")
|
||
|
||
if ct_level()==2:
|
||
ct_build(4,-2, "Archer tower", "Tower #2", blue, "square-A")
|
||
|
||
if ct_level()==3:
|
||
ct_build(5,4, "Mage tower", "Tower #3", magenta, "square-B")
|
||
|
||
|
||
|
||
###############################################################################
|
||
# En: Externals calls << DONT CHANGE THIS SECTION >>
|
||
# Fr: Appels externes << NE PAS MODIFIER CETTE SECTION >>
|
||
###############################################################################
|
||
|
||
if __name__=='start':
|
||
start()
|
||
if __name__=='stop':
|
||
stop()
|
||
|