Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Corentin MIMEAU
PolyDefense
Commits
e284aa77
Commit
e284aa77
authored
Dec 08, 2015
by
Vincent BRULE
Browse files
maj
parent
3c54068c
Changes
1
Hide whitespace changes
Inline
Side-by-side
unite.py
View file @
e284aa77
...
...
@@ -26,27 +26,35 @@ class Unite:
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
.
liste_case
=
[]
self
.
temps_passe
=
0
def
modifier_vitesse
(
self
,
vit
):
self
.
vitesse
=
vit
def
afficher
(
self
,
ecran
):
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
def
chrono
(
self
):
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
### Retire de la sante à l'unité (si elle se fait attaquer par exemple)
...
...
@@ -56,44 +64,59 @@ class Unite:
else
:
self
.
sante
=
0
def
avancer
(
self
,
carte
):
(
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
=
(
-
self
.
vitesse
if
a
<
0
else
self
.
vitesse
)
else
:
dx
=
0
if
b
!=
0
:
dy
=
(
-
self
.
vitesse
if
b
<
0
else
self
.
vitesse
)
else
:
dy
=
0
if
dx
==
-
self
.
vitesse
:
self
.
numero_image
=
1
elif
dx
==
self
.
vitesse
:
self
.
numero_image
=
2
elif
dy
==
-
self
.
vitesse
:
self
.
numero_image
=
3
elif
dy
==
self
.
vitesse
:
self
.
numero_image
=
4
nPos
=
(
self
.
position
[
0
]
+
dx
,
self
.
position
[
1
]
+
dy
)
self
.
position
=
nPos
return
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
]
/
Constante
.
taille_rel
==
1
and
nPos
[
1
]
/
Constante
.
taille_rel
==
4
:
print
"ok"
base
.
perte_sante
()
base
.
liste_unite
.
remove
(
self
)
image_route_initiale
=
image
.
load
(
self
.
chemin_image_route
)
image_route_finale
=
transform
.
scale
(
image_route_initiale
,
(
Constante
.
taille_rel
,
Constante
.
taille_rel
))
ecran
.
blit
(
image_route_finale
,
(
Constante
.
taille_rel
*
2
,
Constante
.
taille_rel
*
4
))
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
)
...
...
@@ -113,7 +136,7 @@ class Unite:
if
(
g
,
h
)
in
carte
.
liste_route
and
(
g
,
h
)
not
in
self
.
liste_case
:
return
(
g
,
h
)
else
:
else
:
return
"erreur"
class
Unite_feu
(
Unite
):
...
...
@@ -124,16 +147,18 @@ class Unite_feu(Unite):
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
.
numero_image
=
0
self
.
numero_image
=
1
self
.
chemin_image_route
=
"route.png"
self
.
sante
=
50
# Santé du soldat
self
.
position
=
pos
# Position du soldat
self
.
vitesse
=
5
# Vitesse du soldat
self
.
vitesse
=
0.001
# Vitesse du soldat
self
.
proprietaire
=
pro
# Propriétaire du soldat
self
.
violence
=
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
):
def
__init__
(
self
,
pos
,
pro
):
...
...
@@ -142,15 +167,15 @@ class Unite_glace(Unite):
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
.
numero_image
=
0
self
.
numero_image
=
1
self
.
chemin_image_route
=
"route.png"
self
.
sante
=
50
# Santé du soldat
self
.
position
=
pos
# Position du soldat
self
.
vitesse
=
6
# Vitesse du soldat
self
.
vitesse
=
0.01
# Vitesse du soldat
self
.
proprietaire
=
pro
# Propriétaire du soldat
self
.
violence
=
1
# Agressivité qu'apporte le soldat
self
.
prix
=
5
self
.
liste_case
=
[]
\ No newline at end of file
self
.
temps
=
time
.
time
()
self
.
temps_passe
=
time
.
time
()
self
.
affichage
=
1
\ No newline at end of file
Write
Preview
Supports
Markdown
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