Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Corentin MIMEAU
PolyDefense
Commits
43302b13
Commit
43302b13
authored
Dec 13, 2015
by
Vincent BRULE
Browse files
grosse maj
parent
a9e3d2f8
Changes
1
Hide whitespace changes
Inline
Side-by-side
unite.py
View file @
43302b13
...
...
@@ -21,12 +21,13 @@ class Unite:
self
.
chemin_image_route
=
""
self
.
numero_image
=
0
self
.
sante
=
50
# Santé du soldat
self
.
sante_totale
=
50
self
.
position
=
pos
self
.
vitesse
=
1
# Vitesse du soldat
self
.
proprietaire
=
pro
# Propriétaire du soldat
self
.
violence
=
1
# Agressivité qu'apporte le soldat
self
.
prix
=
5
# Prix du soldat
self
.
temps
=
0
self
.
temps
=
0
self
.
liste_case
=
[]
self
.
temps_passe
=
0
...
...
@@ -34,27 +35,28 @@ class Unite:
self
.
vitesse
=
vit
def
chrono
(
self
):
return
self
.
temps_passe
-
self
.
temps
return
self
.
temps_passe
-
self
.
temps
def
afficher
(
self
,
ecran
):
if
self
.
affichage
==
1
:
if
self
.
numero_image
==
1
:
image_soldat_initiale
=
image
.
load
(
self
.
chemin_image_soldat
)
elif
self
.
numero_image
==
2
:
image_soldat_initiale
=
image
.
load
(
self
.
chemin_image_soldat_2
)
elif
self
.
numero_image
==
3
:
image_soldat_initiale
=
image
.
load
(
self
.
chemin_image_soldat_3
)
elif
self
.
numero_image
==
4
:
image_soldat_initiale
=
image
.
load
(
self
.
chemin_image_soldat_4
)
image_soldat_finale
=
transform
.
scale
(
image_soldat_initiale
,
(
Constante
.
taille_rel
,
Constante
.
taille_rel
))
ecran
.
blit
(
image_soldat_finale
,
self
.
position
)
return
else
:
return
if
self
.
affichage
==
1
:
if
self
.
numero_image
==
1
:
image_soldat_initiale
=
image
.
load
(
self
.
chemin_image_soldat
)
elif
self
.
numero_image
==
2
:
image_soldat_initiale
=
image
.
load
(
self
.
chemin_image_soldat_2
)
elif
self
.
numero_image
==
3
:
image_soldat_initiale
=
image
.
load
(
self
.
chemin_image_soldat_3
)
elif
self
.
numero_image
==
4
:
image_soldat_initiale
=
image
.
load
(
self
.
chemin_image_soldat_4
)
image_soldat_finale
=
transform
.
scale
(
image_soldat_initiale
,
(
Constante
.
taille_rel
,
Constante
.
taille_rel
))
ecran
.
blit
(
image_soldat_finale
,
self
.
position
)
draw
.
rect
(
ecran
,
(
255
,
0
,
0
),
(
self
.
position
[
0
],
self
.
position
[
1
],(
Constante
.
taille_rel
*
self
.
sante
/
self
.
sante_totale
),
Constante
.
taille_rel
/
10
))
return
else
:
return
### Retire de la sante à l'unité (si elle se fait attaquer par exemple)
...
...
@@ -64,60 +66,62 @@ class Unite:
else
:
self
.
sante
=
0
def
avancer
(
self
,
carte
,
base
,
ecran
):
if
self
.
chrono
()
>
self
.
vitesse
:
self
.
temps
=
time
.
time
()
(
u
,
v
)
=
(
self
.
position
[
0
]
/
Constante
.
taille_rel
,
self
.
position
[
1
]
/
Constante
.
taille_rel
)
if
(
u
,
v
)
not
in
self
.
liste_case
:
if
(
self
.
position
[
0
]
%
Constante
.
taille_rel
==
0
and
self
.
position
[
1
]
%
Constante
.
taille_rel
==
0
):
self
.
liste_case
.
append
((
u
,
v
))
prochaineCase
=
self
.
chercherProchaineCase
(
carte
)
if
prochaineCase
!=
"erreur"
:
a
=
(
prochaineCase
[
0
]
*
Constante
.
taille_rel
-
self
.
position
[
0
])
b
=
(
prochaineCase
[
1
]
*
Constante
.
taille_rel
-
self
.
position
[
1
])
if
a
!=
0
:
dx
=
(
-
5
if
a
<
0
else
5
)
else
:
dx
=
0
if
b
!=
0
:
dy
=
(
-
5
if
b
<
0
else
5
)
else
:
dy
=
0
if
dx
==
-
5
:
self
.
numero_image
=
1
elif
dx
==
5
:
self
.
numero_image
=
2
elif
dy
==
-
5
:
self
.
numero_image
=
3
elif
dy
==
5
:
self
.
numero_image
=
4
nPos
=
(
self
.
position
[
0
]
+
dx
,
self
.
position
[
1
]
+
dy
)
self
.
position
=
nPos
if
self
.
proprietaire
==
2
:
if
nPos
[
0
]
==
2
*
Constante
.
taille_rel
and
nPos
[
1
]
==
4
*
Constante
.
taille_rel
:
base
.
perte_sante
()
base
.
liste_unite
.
remove
(
self
)
self
.
affichage
=
0
if
self
.
proprietaire
==
1
:
if
nPos
[
0
]
==
27
*
Constante
.
taille_rel
and
nPos
[
1
]
==
4
*
Constante
.
taille_rel
:
base
.
perte_sante
()
base
.
liste_unite
.
remove
(
self
)
self
.
affichage
=
0
return
else
:
self
.
temps_passe
=
time
.
time
()
return
def
avancer
(
self
,
carte
,
base
,
base_ennemie
,
ecran
):
if
self
.
chrono
()
>
self
.
vitesse
:
self
.
temps
=
time
.
time
()
(
u
,
v
)
=
(
self
.
position
[
0
]
/
Constante
.
taille_rel
,
self
.
position
[
1
]
/
Constante
.
taille_rel
)
if
(
u
,
v
)
not
in
self
.
liste_case
:
if
(
self
.
position
[
0
]
%
Constante
.
taille_rel
==
0
and
self
.
position
[
1
]
%
Constante
.
taille_rel
==
0
):
self
.
liste_case
.
append
((
u
,
v
))
prochaineCase
=
self
.
chercherProchaineCase
(
carte
)
if
prochaineCase
!=
"erreur"
:
a
=
(
prochaineCase
[
0
]
*
Constante
.
taille_rel
-
self
.
position
[
0
])
b
=
(
prochaineCase
[
1
]
*
Constante
.
taille_rel
-
self
.
position
[
1
])
if
a
!=
0
:
dx
=
(
-
(
Constante
.
taille_rel
/
4
)
if
a
<
0
else
Constante
.
taille_rel
/
4
)
else
:
dx
=
0
if
b
!=
0
:
dy
=
(
-
(
Constante
.
taille_rel
/
4
)
if
b
<
0
else
Constante
.
taille_rel
/
4
)
else
:
dy
=
0
if
dx
==
-
(
Constante
.
taille_rel
/
4
)
:
self
.
numero_image
=
1
elif
dx
==
Constante
.
taille_rel
/
4
:
self
.
numero_image
=
2
elif
dy
==
-
(
Constante
.
taille_rel
/
4
):
self
.
numero_image
=
3
elif
dy
==
Constante
.
taille_rel
/
4
:
self
.
numero_image
=
4
nPos
=
(
self
.
position
[
0
]
+
dx
,
self
.
position
[
1
]
+
dy
)
self
.
position
=
nPos
if
self
.
proprietaire
==
2
:
if
nPos
[
0
]
==
2
*
Constante
.
taille_rel
and
nPos
[
1
]
==
4
*
Constante
.
taille_rel
:
base_ennemie
.
perte_sante
()
base
.
liste_unite
.
remove
(
self
)
self
.
affichage
=
0
if
self
.
proprietaire
==
1
:
if
nPos
[
0
]
==
27
*
Constante
.
taille_rel
and
nPos
[
1
]
==
4
*
Constante
.
taille_rel
:
base_ennemie
.
perte_sante
()
base
.
liste_unite
.
remove
(
self
)
self
.
affichage
=
0
return
else
:
self
.
temps_passe
=
time
.
time
()
return
def
chercherProchaineCase
(
self
,
carte
):
(
u
,
v
)
=
(
self
.
position
[
0
]
/
Constante
.
taille_rel
,
self
.
position
[
1
]
/
Constante
.
taille_rel
)
...
...
@@ -140,43 +144,86 @@ class Unite:
else
:
return
"erreur"
class
Unite_
fe
u
(
Unite
):
class
El
fe
(
Unite
):
def
__init__
(
self
,
pos
,
pro
):
self
.
type
=
1
self
.
chemin_image_soldat
=
"soldat_feu.png"
# Image du soldat
self
.
chemin_image_soldat_2
=
"soldat_feu_2.png"
self
.
chemin_image_soldat_3
=
"soldat_feu_3.png"
self
.
chemin_image_soldat_4
=
"soldat_feu_4.1.png"
self
.
chemin_image_soldat
=
"elfe.png"
# Image du soldat
self
.
chemin_image_soldat_2
=
"elfe_2.png"
self
.
chemin_image_soldat_3
=
"elfe_3.png"
self
.
chemin_image_soldat_4
=
"elfe_4.png"
self
.
numero_image
=
1
self
.
chemin_image_route
=
"route.png"
self
.
sante
=
50
# Santé du soldat
self
.
sante
=
100
# Santé du soldat
self
.
sante_totale
=
100
self
.
position
=
pos
# Position du soldat
self
.
vitesse
=
0.
0
1
# Vitesse du soldat
self
.
vitesse
=
0.1
# Vitesse du soldat
self
.
proprietaire
=
pro
# Propriétaire du soldat
self
.
violenc
e
=
1
# Agressivité qu'apporte le soldat
self
.
typ
e
=
1
# Agressivité qu'apporte le soldat
self
.
prix
=
5
self
.
liste_case
=
[]
self
.
temps
=
time
.
time
()
self
.
temps_passe
=
time
.
time
()
self
.
affichage
=
1
class
Unite_glace
(
Unite
):
class
Loup
(
Unite
):
def
__init__
(
self
,
pos
,
pro
):
self
.
type
=
2
self
.
chemin_image_soldat
=
"soldat_glace.png"
# Image du soldat
self
.
chemin_image_soldat_2
=
"soldat_glace_2.png"
self
.
chemin_image_soldat_3
=
"soldat_glace_3.png"
self
.
chemin_image_soldat_4
=
"soldat_glace_4.png"
self
.
chemin_image_soldat
=
"loup.png"
# Image du soldat
self
.
chemin_image_soldat_2
=
"loup_2.png"
self
.
chemin_image_soldat_3
=
"loup_3.png"
self
.
chemin_image_soldat_4
=
"loup_4.png"
self
.
numero_image
=
1
self
.
chemin_image_route
=
"route.png"
self
.
sante
=
50
# Santé du soldat
self
.
sante_totale
=
50
self
.
position
=
pos
# Position du soldat
self
.
vitesse
=
0.
00
01
# Vitesse du soldat
self
.
vitesse
=
0.01
# Vitesse du soldat
self
.
proprietaire
=
pro
# Propriétaire du soldat
self
.
violenc
e
=
1
# Agressivité qu'apporte le soldat
self
.
typ
e
=
2
# Agressivité qu'apporte le soldat
self
.
prix
=
5
self
.
liste_case
=
[]
self
.
temps
=
time
.
time
()
self
.
temps_passe
=
time
.
time
()
self
.
affichage
=
1
\ No newline at end of file
self
.
temps_passe
=
time
.
time
()
self
.
affichage
=
1
class
Paladin
(
Unite
):
def
__init__
(
self
,
pos
,
pro
):
self
.
chemin_image_soldat
=
"paladin.png"
# Image du soldat
self
.
chemin_image_soldat_2
=
"paladin_2.png"
self
.
chemin_image_soldat_3
=
"paladin_3.png"
self
.
chemin_image_soldat_4
=
"paladin_4.png"
self
.
numero_image
=
1
self
.
chemin_image_route
=
"route.png"
self
.
sante
=
10
# Santé du soldat
self
.
sante_totale
=
10
self
.
position
=
pos
# Position du soldat
self
.
vitesse
=
0.3
# Vitesse du soldat
self
.
proprietaire
=
pro
# Propriétaire du soldat
self
.
type
=
3
# Agressivité qu'apporte le soldat
self
.
prix
=
5
self
.
liste_case
=
[]
self
.
temps
=
time
.
time
()
self
.
temps_passe
=
time
.
time
()
self
.
affichage
=
1
class
Soldat
(
Unite
):
def
__init__
(
self
,
pos
,
pro
):
self
.
chemin_image_soldat
=
"soldat.png"
# Image du soldat
self
.
chemin_image_soldat_2
=
"soldat_2.png"
self
.
chemin_image_soldat_3
=
"soldat_3.png"
self
.
chemin_image_soldat_4
=
"soldat_4.png"
self
.
numero_image
=
1
self
.
chemin_image_route
=
"route.png"
self
.
sante
=
20
# Santé du soldat
self
.
sante_totale
=
20
self
.
position
=
pos
# Position du soldat
self
.
vitesse
=
0.04
# Vitesse du soldat
self
.
proprietaire
=
pro
# Propriétaire du soldat
self
.
type
=
4
# Agressivité qu'apporte le soldat
self
.
prix
=
5
self
.
liste_case
=
[]
self
.
temps
=
time
.
time
()
self
.
temps_passe
=
time
.
time
()
self
.
affichage
=
1
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment