Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
O
ohj1ht
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
salmatel
ohj1ht
Commits
51c03ae2
Commit
51c03ae2
authored
1 year ago
by
Salonen Matteus Elmeri
Browse files
Options
Downloads
Patches
Plain Diff
korjattiin tekstejä
parent
d575dc9e
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
Harjoitustyo/HyttysPeli/HyttysPeli.cs
+35
-41
35 additions, 41 deletions
Harjoitustyo/HyttysPeli/HyttysPeli.cs
with
35 additions
and
41 deletions
Harjoitustyo/HyttysPeli/HyttysPeli.cs
+
35
−
41
View file @
51c03ae2
...
...
@@ -29,72 +29,66 @@ public class HyttysPeli : PhysicsGame
Add
(
pelaaja
);
Keyboard
.
Listen
(
Key
.
F1
,
ButtonState
.
Pressed
,
ShowControlHelp
,
"Näytä avustus"
);
Keyboard
.
Listen
(
Key
.
Up
,
ButtonState
.
Down
,
Lyo
Kolmio
ta
,
"Pelaaja ylös"
,
pelaaja
,
new
Vector
(
0
,
20
));
Keyboard
.
Listen
(
Key
.
Down
,
ButtonState
.
Down
,
Lyo
Kolmio
ta
,
"Pelaaja alas"
,
pelaaja
,
new
Vector
(
0
,
-
20
));
Keyboard
.
Listen
(
Key
.
Left
,
ButtonState
.
Down
,
Lyo
Kolmio
ta
,
"Pelaaja vasemmalle"
,
pelaaja
,
new
Vector
(-
20
,
0
));
Keyboard
.
Listen
(
Key
.
Right
,
ButtonState
.
Down
,
Lyo
Kolmio
ta
,
"Pelaaja oikealle"
,
pelaaja
,
new
Vector
(
20
,
0
));
Keyboard
.
Listen
(
Key
.
Up
,
ButtonState
.
Down
,
Lyo
Hyttys
ta
,
"Pelaaja ylös"
,
pelaaja
,
new
Vector
(
0
,
20
));
Keyboard
.
Listen
(
Key
.
Down
,
ButtonState
.
Down
,
Lyo
Hyttys
ta
,
"Pelaaja alas"
,
pelaaja
,
new
Vector
(
0
,
-
20
));
Keyboard
.
Listen
(
Key
.
Left
,
ButtonState
.
Down
,
Lyo
Hyttys
ta
,
"Pelaaja vasemmalle"
,
pelaaja
,
new
Vector
(-
20
,
0
));
Keyboard
.
Listen
(
Key
.
Right
,
ButtonState
.
Down
,
Lyo
Hyttys
ta
,
"Pelaaja oikealle"
,
pelaaja
,
new
Vector
(
20
,
0
));
for
(
int
i
=
0
;
i
<
20
;
i
++)
LuoSattunnainenHyttynen
(
this
,
ylaosa
,
60
,
"
vihu
"
);
LuoSattunnainenHyttynen
(
this
,
ylaosa
,
60
,
"
hyttynen
"
);
AddCollisionHandler
(
pelaaja
,
"
vihu
"
,
PelaajaTormasi
);
AddCollisionHandler
(
pelaaja
,
"
hyttynen
"
,
PelaajaTormasi
);
PhoneBackButton
.
Listen
(
ConfirmExit
,
"Lopeta peli"
);
Keyboard
.
Listen
(
Key
.
Escape
,
ButtonState
.
Pressed
,
ConfirmExit
,
"Lopeta peli"
);
}
/// <summary>
/// Metodi johon tullaan kun pelaaja ja joku kolmio törmäävät.
/// Mikäli pelaajan ala on suurempi kuin vihollisen ala,
/// luodaan vihollisen kohdalla räjähdys ja poistetaan vihollinen pelistä
/// sekä siirretään vihollisen ala pelaajalle.
/// Muuten lopetetaan peli. TODO: keksittävä parempi lopetus
/// Metodi johon tullaan kun pelaaja ja joku hyttynen törmäävät.
/// Luodaan hyttysen kohdalla räjähdys ja poistetaan hyttynen pelistä
/// </summary>
/// <param name="pelaaja">pelaaja joka törmäsi</param>
/// <param name="
vihu">viholli
nen johon pelaaja törmäsi</param>
private
void
PelaajaTormasi
(
PhysicsObject
pelaaja
,
PhysicsObject
vihu
)
/// <param name="
hyttynen">hytty
nen johon pelaaja törmäsi</param>
private
void
PelaajaTormasi
(
PhysicsObject
pelaaja
,
PhysicsObject
hyttynen
)
{
double
pelaajanAla
=
Kolmio
nAla
(
pelaaja
.
Width
,
pelaaja
.
Height
);
double
vihunAla
=
KolmionAla
(
vihu
.
Width
,
vihu
.
Height
);
double
pelaajanAla
=
Hyttyse
nAla
(
pelaaja
.
Width
,
pelaaja
.
Height
);
double
hyttysenAla
=
HyttysenAla
(
hyttynen
.
Width
,
hyttynen
.
Height
);
if
(
pelaajanAla
>
vihu
nAla
)
if
(
pelaajanAla
>
hyttyse
nAla
)
{
Explosion
rajahdys
=
new
Explosion
(
vihu
.
Width
*
2
);
rajahdys
.
Position
=
vihu
.
Position
;
Explosion
rajahdys
=
new
Explosion
(
hyttynen
.
Width
*
2
);
rajahdys
.
Position
=
hyttynen
.
Position
;
rajahdys
.
UseShockWave
=
false
;
// kannattaa kokeilla mitä taphatuu true -arvolla.
this
.
Add
(
rajahdys
);
Remove
(
vihu
);
return
;
Remove
(
hyttynen
);
}
Exit
();
// TODO: lisää parempi loppu
}
/// <summary>
/// Lyödään
kolmiota
voimavektorilla
/// Lyödään
hyttystä
voimavektorilla
/// </summary>
/// <param name="
kolmio
">lyötävä
kolmio
</param>
/// <param name="
hyttynen
">lyötävä
hyttynen
</param>
/// <param name="suunta">voimavektori</param>
public
static
void
Lyo
Kolmio
ta
(
PhysicsObject
kolmio
,
Vector
suunta
)
public
static
void
Lyo
Hyttys
ta
(
PhysicsObject
hyttynen
,
Vector
suunta
)
{
kolmio
.
Hit
(
kolmio
.
Mass
*
suunta
);
hyttynen
.
Hit
(
hyttynen
.
Mass
*
suunta
);
}
/// <summary>
/// Luodaan satunnainen
kolmio
suorakaiteen sisälle.
Myös nopeus, väri ja kulma arvotaan.
/// Luodaan satunnainen
hyttynen
suorakaiteen sisälle.
/// </summary>
/// <param name="peli">Mihin peliin
kolmio
luodaan</param>
/// <param name="peli">Mihin peliin
hyttynen
luodaan</param>
/// <param name="rect">Minkä suorakaiteen sisälle luodaan</param>
/// <param name="vauhti">
Kolmio
n vauhti alkutilanteessa</param>
/// <param name="tunniste">
Kolmio
lle annettava tunniste</param>
/// <returns>Viite luotuun
kolmioo
n</returns>
/// <param name="vauhti">
Hyttyse
n vauhti alkutilanteessa</param>
/// <param name="tunniste">
Hyttyse
lle annettava tunniste</param>
/// <returns>Viite luotuun
hyttysee
n</returns>
public
static
PhysicsObject
LuoSattunnainenHyttynen
(
PhysicsGame
peli
,
BoundingRectangle
rect
,
double
vauhti
,
string
tunniste
)
{
double
leveys
=
50
;
double
korkeus
=
50
;
PhysicsObject
hyttynen
=
new
PhysicsObject
(
leveys
,
korkeus
,
Shape
.
Star
);
PhysicsObject
hyttynen
=
new
PhysicsObject
(
leveys
,
korkeus
,
Shape
.
Circle
);
hyttynen
.
Position
=
RandomGen
.
NextVector
(
rect
);
Vector
suunta
=
RandomGen
.
NextVector
(
0
,
vauhti
);
hyttynen
.
Hit
(
suunta
);
...
...
@@ -107,20 +101,20 @@ public class HyttysPeli : PhysicsGame
/// <summary>
/// Laskee
kolmio
n alan
/// Laskee
hyttyse
n alan
/// </summary>
/// <param name="kanta">
kolmio
n kanta</param>
/// <param name="korkeus">
kolmio
n korkeus</param>
/// <returns>
kolmio
n ala</returns>
/// <param name="kanta">
hyttyse
n kanta</param>
/// <param name="korkeus">
hyttyse
n korkeus</param>
/// <returns>
hyttyse
n ala</returns>
/// <example>
/// <pre name="test">
///
Kolmio
nAla(0,0) ~~~ 0;
///
Kolmio
nAla(1,0) ~~~ 0;
///
Kolmio
nAla(1,1) ~~~ 0.5;
///
Kolmio
nAla(3,5) ~~~ 7.5;
///
Hyttyse
nAla(0,0) ~~~ 0;
///
Hyttyse
nAla(1,0) ~~~ 0;
///
Hyttyse
nAla(1,1) ~~~ 0.5;
///
Hyttyse
nAla(3,5) ~~~ 7.5;
/// </pre>
/// </example>
public
static
double
Kolmio
nAla
(
double
kanta
,
double
korkeus
)
public
static
double
Hyttyse
nAla
(
double
kanta
,
double
korkeus
)
{
return
kanta
*
korkeus
*
1
/
2
;
}
...
...
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