►
Description
Community call demo taken from the SharePoint dev Special Interest Group recording at 24th of January 2019. In this videos Chris Kent shows how he built a simple game (PowerPush) using the PowerApps platform. Many tips and tricks included, whcih are really useful for the enterprise development scenarios as well.
Presenter - Chris Kent (DMI) - @theChrisKent
More details on the SharePoint dev community calls from http://aka.ms/sppnp.
A
All
right
so
we'll
see
how
well
this
animation
and
some
of
the
sound
works
in
this
format,
but
there
is
a
video
everyone
wants
time.
You
can
also
go
download
this
thing,
so
this
is
a
power
app,
quick,
real,
quick,
I'm
gonna
walk
you
through
it,
so
we
just
saw
on
tap
so
some
really
cool
enterprise
corporate
type
features.
This
is.
A
B
A
We're
gonna
skip
all
the
music
for
now,
but
here's
the
idea,
so
you
come
in
here
and
I'm
going
to
play
this
game
alright
play.
This
is
a
mobile
phone
game.
Alright,
so
you
come
in
here-
and
this
is
a
was
a
called
sokoban
clone
for
the
old
Japanese
warehouse
thing
you
can
move
around
to
the
wall.
Ooh
I
will
go
back,
mover
crates,
I
screwed
it
up.
You
start
the
level.
Did
you
get
daddy
here?
If
I
wanted
to
come
down
here?
A
A
A
A
A
Everybody
all
right
so
go
back
here.
I
also
got
support
here
for
a
right-handed
versus
left-handed
bone,
which
again
makes
it
very
easy
to
do
that
using
power-ups
and
all
the
data
binding,
so
I
switched
to
left-handed
all
right.
So
it's
a
mobile
phone,
so
you
can
imagine
now
I
need
the
controls
on
the
left
side.
No
low-level
trawls
itself
over
here.
Okay,
alright,
final
thing
that
this
guy's
got.
If
we
go
back
home,
which
is
now
we're
here,
slips
that
backs
I'm
confused.
It's
got
some
very
exciting
credits.
We're
began.
A
This
is
primarily
show
off
that
my
kids
tested
this
thing.
They
had
a
great
time
all
right.
So
what
what
did
I
learn?
Why
did
I?
Do
this?
The
primary
reason
I
did.
This
was
trying
to
learn
a
few
things
that
are
not
obvious
from
just
doing.
You
know
your
standard
forms.
You
know
three
screens
to
edit
all
that
kind
of
stuff,
so
I
would
do
and
did
some
stuff.
Let's
take
a
look
at
this
simple
game:
alright,
so
here
we
go.
We
got
this
on
this
screen.
A
The
main
thing
to
note
is
on
the
on
start
is
where
we're
going
to
set
up
all
about
level
information
so
and
Kevin
you're,
a
student,
probably
about
40
hours.
It
was
very
exciting
and
some
of
those
just
trying
to
figure
out
why
the
heck
was
I
doing
this
and
what
I
was
doing.
Okay,
so
the
main
thing
to
know
what
up
here
is.
There
is
a
limitation
right
now
for
media
references.
You
cannot
reference
them
outside
of
just
referencing
the
media
part,
but
I
want
to
do
a
string.
A
Alright,
so
I
want
to
be
able
to
reference
these
things
by
string,
so
I
can
make
my
level
design
simpler.
So
I
created
this
collection
here
of
an
image
map.
It
allows
you
some
cool
filtering,
there's
more
details
about
it's
on
a
blog,
so
I'm
gonna
fly
it
through
it.
Pretty
quick
but
I'll
be
happy
to
talk
to
you
guys.
Don't
need
this
stuff,
okay,
but
down
here.
A
Levels
variable
right,
so
it's
just
an
array
of
these
very
exciting
things.
This
is
actually
that
first
level,
can
you
see
it
sure
you
can
you
can
kind
of
see
these
are
the
outside
pieces
right
inside
here?
This
is
the
tile.
Then
it's
one
if
it's
solid
or
zero.
If
it's,
you
can
walk
through
it.
So
I
did
it
this
way.
So
it
was
a
little
easier
to
do
this.
A
Try
and
get
an
idea
of
how
you
could
design
those
levels
and
there's
some
details,
but
we'll
start
right,
so
we've
got
a
whole
array
of
these
things.
So
that's
what
makes
it
possible
to
have
this
app
only
have
four
screens
despite
having
six
levels.
Those
levels
can
be
any
number
of
things.
Using
that
image
map
you
could
create
themed
levels,
all
that
kind
of
stuff.
So
let's
talk
about,
how
do
we
take
that
array
of
you
know
little
strings
that
indicate
tiles
and
turn
that
into
something
power-ups
can
use
alright.
A
So
in
our
level
start
we
did
this
nice
little
thing
up
here.
All
we
do
is
we
grab
the
current
level,
one
thing
to
notice
I'm
using
indexes
all
over
the
place,
so
I
just
mean
the
index
of
the
collection
rows
to
the
atoms,
but
indexes
started
one.
Why?
Why?
But
that's
what
happens
here?
You
see
at
last
first
end
past
the
index
to
the
collection,
and
then
you
can
get
that
item.
So
it's
a
little
bit
convoluted
right.
But
again
you
can
see
that
more
on
the
bulldog
here
by
the
way
on
the
blog.
A
If
you
go
over
here,
which
I
think
David
pasted
it
in
there,
but
you
can
download
this
thing
is
a
zip
file
again,
there's
no
data
connections.
There's
nothing
to
set
up.
You
can
go
ahead
and
bring
it
up
and
then
play
that
your
own
environment
and
that'll
be
a
lot
easier
to
check
this
out.
If
you
want
to
see
what's
going
on
here,
thanks
David,
alright,
so
in
here
then
I'm
converting
those
that
background
stuff
into
a
tiles
array
using
this
nice
little
for
all.
A
If
you
guys
haven't
seen
this
this
the
way
to
take
one
collection
loop
through
it
and
create
another
one
out
of
it,
which
allows
me
to
use
that
image
map
here
so
I
convert
the
left
value
right
of
that
string
using
that
image
map
I
created
earlier,
which
makes
it
really
easy
for
my
tiles
to
reference.
What
image
is
supposed
to
be
and
so
on?
Alright,
then,
there's
some
other
stuff.
This
is
how
you
do
a
random,
so
there's
a
random
tip
on
the
bottom.
A
There
you
do
a
shuffle
on
your
collection
and
you've
got
the
first
one
so
very
exciting
everyone
getting
all
this
perfect.
Okay.
So
now,
what's
the
actual
thing
happening?
So
let's
take
a
look
at
the
main
game
here
so
for
coming.
Here's!
Here's!
Here's
our
level
alright!
So
way
this
works
is
there
are
140
images
right
here
you
can
see
them
all
they're
laid
out,
and
you
know
row
ten
rows
and
fourteen
columns
in
those
tiles
right.
B
A
A
On
the
border
thickness
and
grab
that
image
all
right,
so
I
can
grab
that
I
can
put
all
this
together
and
that
way
it
doesn't
matter
as
long
as
my
model
right
so
I've
put
together
with
that
for
all
on
that
levels,
then
these
tiles
will
draw
themselves
exactly
where
they
go
now
by
data
binding
the
X
to
the
Y
right.
So
I
can
see
things
where
it
goes.
A
The
right-handed
they'll
all
move
themselves
over
as
necessary
right,
but
they
also
draw
them
in
the
correct
spot
based
on
their
index,
but
it
allows
me
to
have
a
set
piece
at
the
beginning.
I
would
say
how
many
columns
and
rows
and
what
size
those
tiles
should
be
so
I
have
some
real
flexibilities
and
move
through
these
levels.
All
right.
So
that's
how
those
work
these
crates,
so
these
foreground
objects
are
pretty
similar,
there's
so
many
titles.
Let's
go
up
here
all
right.
A
So
if
you
look
here,
I
got,
we've
got
some
crates
right,
so
the
crates
work
right,
gonna
have
up
to
five
crates,
so
all
they
do
is
they
just
turn
themselves
off?
If
there
isn't
a
crate
object,
they
find
out
what
should
move.
So
all
power
apps
really
is
doing
here-
is
drawing
my
model.
That's
just
a
variable
or
a
collection
at
any
given
time.
So
there's
nothing
else.
Fancy
going
on
with
that!
So
all
I
need
to
do
then
is
update
the
model.
A
A
What
I
wanted
was
I
wanted
with
a
global
function
right,
that's
not
really
a
thing
in
power
apps,
but
I
wanted
a
way
that
you
know
the
move.
Logic
is
pretty
complicated.
I
didn't
want
to
write
that
four
different
ways
right
to
determine
how
we
can
move
if
there's
a
wall,
if
there's
a
crate,
is
the
crate,
that's
another
crazy.
The
crate
against
the
wall
you
know
play
the
right
sounds:
there's
a
lot
of
things
to
that.
So
what
I
did
was
I
created
this
zero
duration
timer.
A
This
timer
has
a
duration
of
deer
of
zero,
does
have
an
auto
start
set
to
this
evaluate
move
context,
variable,
and
so
all
I'm
doing
is
when
evaluate
move
turns
true
start
the
timer
it'll
meet
of
the
execute
the
on
timer
end,
but
in
the
on
timer
end
I'm,
then
doing
all
of
the
move,
logic
and
there's
very
end.
I
set
that
to
false.
A
So
this
acts
as
a
sort
of
global
function
that
I
could
then
call
so
the
way
I'm
using
that
we'll
take
a
look
at
that
again
in
a
second,
is,
if
you
click
on
the
little
feet
pad
here.
This
is
all
I
have
to
do.
I
set
up
my
quote:
parameter
right,
which
is
just
requested
move
here.
I'm
saying
I
want
to
go
left
so
X
minus
one,
and
this
is
what
direction
the
image
should
be
rotated
and
I
set
that
to
true,
so
that
calls
that
global
function
with
this,
so
you
can
see.
A
A
A
If
it's
possible,
do
the
thing
update
it
crate
if
you
need
to
right
play
a
sound
if
you
need
to
this
with
all
these
are
doing
here
and
I'm,
just
playing
sound
by
again
setting
a
context,
variable
play,
sidewalk,
true,
random,
resetting
those
audio
pieces
and,
at
the
end,
all
the
deals
I
check
for
a
win
every
time
you
move
so
I
test
the
logic
I
just
played
the
game
a
whole
lot.
I
also
handed
the
phone
to
the
children,
so
they
could
play
play
quite
a
bit.
A
So
that's
the
basic
idea
of
the
main
game.
So
they've
got
all
these
different,
sound
objects.
You
can
see
down
here
all
hidden,
a
couple
things
to
note
the
final
thing:
it's
not
very
important,
but
the
credits
all
this
is
is
there
is
a
brief
collection
of
my
credits
that
I
created
here
right
boom
and
all
I
did
was
I
use
a
gallery
and
I've
got
this
credit
scroll.
So
the
gallery
has
its
wide
set
to
a
variation
of
the
value
of
that
credit
scroll.
So
it
just
moves
up
a
gallery.
A
It's
not
really
very
fancy,
but
a
couple
things
you
can
do.
You
can
do
a
lot
with
timers
so,
for
instance,
on
the
main
piece
here.
This
animation
happens
here
with
this
guys,
demonstrating
what
you're
going
to
do
in
the
game
I'm
using
a
version
of
what
I'm
calling
keyframe
animation,
where
I'm
just
saying,
I
only
care
about
certain
things
right
like
when
the
image
should
shift
based
on
that
timer
sample
duration,
you'll
see
this
divided
by
6,
and
that
was
just
to
scale
it
right.
A
So
again,
I
don't
expect
you
guys
they
really
care
pick
up
on
a
lot
of
that
just
yet,
but
feel
free
to
download
it.
It's
totally
free
all
the
images
are
public
domain,
so
you
can
make
all
the
changes
you
need
to
them.
I
did
not
make
most
of
the
images
just
to
be
clear.
That's
in
the
credits
so
check
it
all
out.
Okay,
all
right!
So
you
so
sorry
there
were
no
horses
in
the
game.
Very
sad
sure.
Do
many
questions
or
anything
we
want
to
talk
about
this.
There.