Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
P
ProjetZZ1
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Marc BERET
ProjetZZ1
Commits
05c65655
Commit
05c65655
authored
2 years ago
by
antoinemeyer5
Browse files
Options
Downloads
Patches
Plain Diff
concatenation code collisions
parent
a43f915e
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
travail_de_groupe/chef_oeuvre/src/player.c
+50
-58
50 additions, 58 deletions
travail_de_groupe/chef_oeuvre/src/player.c
with
50 additions
and
58 deletions
travail_de_groupe/chef_oeuvre/src/player.c
+
50
−
58
View file @
05c65655
...
@@ -42,6 +42,15 @@ int checkCollisionsTypeGround(int dot1, int dot2, int typeGround){
...
@@ -42,6 +42,15 @@ int checkCollisionsTypeGround(int dot1, int dot2, int typeGround){
return
coll
;
return
coll
;
}
}
int
collisionsCaseSolid
(
int
dot1
,
int
dot2
){
return
checkCollisionsTypeGround
(
dot1
,
dot2
,
TREE
)
||
checkCollisionsTypeGround
(
dot1
,
dot2
,
WATER
);
}
/*int collisionsWindow(){
}*/
void
checkCollisionsFire
(
int
dot1
,
int
dot2
){
void
checkCollisionsFire
(
int
dot1
,
int
dot2
){
if
(
player
.
invisible
==
0
&&
(
dot1
==
1
||
dot2
==
1
)
&&
player
.
currentHP
>
0
){
if
(
player
.
invisible
==
0
&&
(
dot1
==
1
||
dot2
==
1
)
&&
player
.
currentHP
>
0
){
player
.
currentHP
=
player
.
currentHP
-
1
;
player
.
currentHP
=
player
.
currentHP
-
1
;
...
@@ -50,88 +59,60 @@ void checkCollisionsFire(int dot1, int dot2){
...
@@ -50,88 +59,60 @@ void checkCollisionsFire(int dot1, int dot2){
}
}
}
}
int
collisionsLeftPlayer
(){
int
collisionsLeftPlayer
(
int
dot1
,
int
dot2
){
int
collisionWindow
=
0
;
int
collisionWindow
=
0
;
int
collisionTree
=
0
;
int
collisionCaseSolid
=
0
;
int
collisionWater
=
0
;
int
dotTopLeft
=
giveCaseBelowPosition
(
player
.
x
,
player
.
y
);
int
dotDownLeft
=
giveCaseBelowPosition
(
player
.
x
,
player
.
y
+
player
.
h
);
int
fireTopLeft
=
searchFire
(
fireList
,
getPositionXInMap
(
player
.
x
),
getPositionYInMap
(
player
.
y
));
int
fireDownLeft
=
searchFire
(
fireList
,
getPositionXInMap
(
player
.
x
),
getPositionYInMap
(
player
.
y
+
player
.
h
));
//collision window
//collision window
if
(
player
.
x
<=
0
){
if
(
player
.
x
<=
0
){
collisionWindow
=
1
;
collisionWindow
=
1
;
}
}
//collisions
//collisions
collisionTree
=
checkCollisionsTypeGround
(
dotTopLeft
,
dotDownLeft
,
TREE
);
collisionCaseSolid
=
collisionsCaseSolid
(
dot1
,
dot2
);
collisionWater
=
checkCollisionsTypeGround
(
dotTopLeft
,
dotDownLeft
,
WATER
);
return
collisionWindow
||
collisionCaseSolid
;
checkCollisionsFire
(
fireTopLeft
,
fireDownLeft
);
return
collisionWindow
||
collisionTree
||
collisionWater
;
}
}
int
collisionsRightPlayer
(){
int
collisionsRightPlayer
(
int
dot1
,
int
dot2
){
int
collisionWindow
=
0
;
int
collisionWindow
=
0
;
int
collisionTree
=
0
;
int
collisionCaseSolid
=
0
;
int
collisionWater
=
0
;
int
dotTopRight
=
giveCaseBelowPosition
(
player
.
x
+
player
.
w
,
player
.
y
);
int
dotDownRight
=
giveCaseBelowPosition
(
player
.
x
+
player
.
w
,
player
.
y
+
player
.
h
);
int
fireTopRight
=
searchFire
(
fireList
,
getPositionXInMap
(
player
.
x
+
player
.
w
),
getPositionYInMap
(
player
.
y
));
int
fireDownRight
=
searchFire
(
fireList
,
getPositionXInMap
(
player
.
x
+
player
.
w
),
getPositionYInMap
(
player
.
y
+
player
.
h
));
//collision window
//collision window
if
(
player
.
x
+
player
.
w
>=
MAPSIZE
*
CELLSIZE
){
if
(
player
.
x
+
player
.
w
>=
MAPSIZE
*
CELLSIZE
){
collisionWindow
=
1
;
collisionWindow
=
1
;
}
}
//collisions
//collisions
collisionTree
=
checkCollisionsTypeGround
(
dotTopRight
,
dotDownRight
,
TREE
);
collisionCaseSolid
=
collisionsCaseSolid
(
dot1
,
dot2
);
collisionWater
=
checkCollisionsTypeGround
(
dotTopRight
,
dotDownRight
,
WATER
);
return
collisionWindow
||
collisionCaseSolid
;
checkCollisionsFire
(
fireTopRight
,
fireDownRight
);
return
collisionWindow
||
collisionTree
||
collisionWater
;
}
}
int
collisionsUpPlayer
(
int
dot1
,
int
dot2
){
int
collisionsUpPlayer
(
int
dot1
,
int
dot2
){
int
collisionWindow
=
0
;
int
collisionWindow
=
0
;
int
collisionTree
=
0
;
int
collisionCaseSolid
=
0
;
int
collisionWater
=
0
;
//collision window
//collision window
if
(
player
.
y
<=
0
){
if
(
player
.
y
<=
0
){
collisionWindow
=
1
;
collisionWindow
=
1
;
}
}
//collisions
//collisions solide like tree or water or rock(in the future)
collisionTree
=
checkCollisionsTypeGround
(
dot1
,
dot2
,
TREE
);
collisionCaseSolid
=
collisionsCaseSolid
(
dot1
,
dot2
);
collisionWater
=
checkCollisionsTypeGround
(
dot1
,
dot2
,
WATER
);
return
collisionWindow
||
collisionCaseSolid
;
return
collisionWindow
||
collisionTree
||
collisionWater
;
}
}
int
collisionsDownPlayer
(){
int
collisionsDownPlayer
(
int
dot1
,
int
dot2
){
int
collisionWindow
=
0
;
int
collisionWindow
=
0
;
int
collisionTree
=
0
;
int
collisionCaseSolid
=
0
;
int
collisionWater
=
0
;
int
dotDownRight
=
giveCaseBelowPosition
(
player
.
x
+
player
.
w
,
player
.
y
+
player
.
h
);
int
dotDownLeft
=
giveCaseBelowPosition
(
player
.
x
,
player
.
y
+
player
.
h
);
int
fireDownRight
=
searchFire
(
fireList
,
getPositionXInMap
(
player
.
x
+
player
.
w
),
getPositionYInMap
(
player
.
y
+
player
.
h
));
int
fireDownLeft
=
searchFire
(
fireList
,
getPositionXInMap
(
player
.
x
),
getPositionYInMap
(
player
.
y
+
player
.
h
));
//collision window
//collision window
if
(
player
.
y
+
player
.
h
>=
MAPSIZE
*
CELLSIZE
){
if
(
player
.
y
+
player
.
h
>=
MAPSIZE
*
CELLSIZE
){
collisionWindow
=
1
;
collisionWindow
=
1
;
}
}
//collisions
//collisions
collisionTree
=
checkCollisionsTypeGround
(
dotDownRight
,
dotDownLeft
,
TREE
);
collisionCaseSolid
=
collisionsCaseSolid
(
dot1
,
dot2
);
collisionWater
=
checkCollisionsTypeGround
(
dotDownRight
,
dotDownLeft
,
WATER
);
return
collisionWindow
||
collisionCaseSolid
;
checkCollisionsFire
(
fireDownRight
,
fireDownLeft
);
return
collisionWindow
||
collisionTree
||
collisionWater
;
}
}
void
moveRightPlayer
(){
void
moveRightPlayer
(){
if
(
!
collisionsRightPlayer
()){
player
.
x
=
player
.
x
+
player
.
speed
;
player
.
x
=
player
.
x
+
player
.
speed
;
}
}
}
void
moveLeftPlayer
(){
void
moveLeftPlayer
(){
if
(
!
collisionsLeftPlayer
()){
player
.
x
=
player
.
x
-
player
.
speed
;
player
.
x
=
player
.
x
-
player
.
speed
;
}
}
}
void
moveUpPlayer
(){
void
moveUpPlayer
(){
...
@@ -139,16 +120,18 @@ void moveUpPlayer(){
...
@@ -139,16 +120,18 @@ void moveUpPlayer(){
}
}
void
moveDownPlayer
(){
void
moveDownPlayer
(){
if
(
!
collisionsDownPlayer
()){
player
.
y
=
player
.
y
+
player
.
speed
;
player
.
y
=
player
.
y
+
player
.
speed
;
}
}
}
void
manageMovement
(){
void
manageMovement
(){
int
dotTopRight
=
giveCaseBelowPosition
(
player
.
x
+
player
.
w
,
player
.
y
);
int
dotTopRight
=
giveCaseBelowPosition
(
player
.
x
+
player
.
w
,
player
.
y
);
int
dotTopLeft
=
giveCaseBelowPosition
(
player
.
x
,
player
.
y
);
int
dotTopLeft
=
giveCaseBelowPosition
(
player
.
x
,
player
.
y
);
int
dotDownRight
=
giveCaseBelowPosition
(
player
.
x
+
player
.
w
,
player
.
y
+
player
.
h
);
int
dotDownLeft
=
giveCaseBelowPosition
(
player
.
x
,
player
.
y
+
player
.
h
);
int
fireTopRight
=
searchFire
(
fireList
,
getPositionXInMap
(
player
.
x
+
player
.
w
),
getPositionYInMap
(
player
.
y
));
int
fireTopRight
=
searchFire
(
fireList
,
getPositionXInMap
(
player
.
x
+
player
.
w
),
getPositionYInMap
(
player
.
y
));
int
fireTopLeft
=
searchFire
(
fireList
,
getPositionXInMap
(
player
.
x
),
getPositionYInMap
(
player
.
y
));
int
fireTopLeft
=
searchFire
(
fireList
,
getPositionXInMap
(
player
.
x
),
getPositionYInMap
(
player
.
y
));
int
fireDownRight
=
searchFire
(
fireList
,
getPositionXInMap
(
player
.
x
+
player
.
w
),
getPositionYInMap
(
player
.
y
+
player
.
h
));
int
fireDownLeft
=
searchFire
(
fireList
,
getPositionXInMap
(
player
.
x
),
getPositionYInMap
(
player
.
y
+
player
.
h
));
if
(
keys
[
PLAYER_UP
]){
if
(
keys
[
PLAYER_UP
]){
if
(
!
collisionsUpPlayer
(
dotTopRight
,
dotTopLeft
)){
if
(
!
collisionsUpPlayer
(
dotTopRight
,
dotTopLeft
)){
...
@@ -159,19 +142,28 @@ void manageMovement(){
...
@@ -159,19 +142,28 @@ void manageMovement(){
}
}
}
}
else
if
(
keys
[
PLAYER_DOWN
]){
else
if
(
keys
[
PLAYER_DOWN
]){
moveDownPlayer
();
if
(
!
collisionsDownPlayer
(
dotDownRight
,
dotDownLeft
)){
player
.
isMoving
=
1
;
moveDownPlayer
();
player
.
direction
=
PLAYER_DOWN
;
checkCollisionsFire
(
fireDownRight
,
fireDownLeft
);
player
.
isMoving
=
1
;
player
.
direction
=
PLAYER_DOWN
;
}
}
}
else
if
(
keys
[
PLAYER_LEFT
]){
else
if
(
keys
[
PLAYER_LEFT
]){
moveLeftPlayer
();
if
(
!
collisionsLeftPlayer
(
dotTopLeft
,
dotDownLeft
)){
player
.
isMoving
=
1
;
moveLeftPlayer
();
player
.
direction
=
PLAYER_LEFT
;
checkCollisionsFire
(
fireTopLeft
,
fireDownLeft
);
player
.
isMoving
=
1
;
player
.
direction
=
PLAYER_LEFT
;
}
}
}
else
if
(
keys
[
PLAYER_RIGHT
]){
else
if
(
keys
[
PLAYER_RIGHT
]){
moveRightPlayer
();
if
(
!
collisionsRightPlayer
(
dotTopRight
,
dotDownRight
)){
player
.
isMoving
=
1
;
moveRightPlayer
();
player
.
direction
=
PLAYER_RIGHT
;
checkCollisionsFire
(
fireTopRight
,
fireDownRight
);
player
.
isMoving
=
1
;
player
.
direction
=
PLAYER_RIGHT
;
}
}
}
else
player
.
isMoving
=
0
;
else
player
.
isMoving
=
0
;
//
//
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment