Anois bainimis úsáid as ár n-eolas nua agus roinnt gníomhartha nua chun cluiche a chruthú cosúil leis na cluichí cáiliúla Pong nó Breakout. Beidh
Chun ár
Tar éis gach glaoch ar an gníomh, ba chóir dúinn fanacht ar feadh cúpla milleasoicind chun
Tosaímis leis an cód seo:
Tosaímis anois leis an slacán. Teastaíonn slacán uainn ar féidir linn bogadh ar tarraing_stáitse
chun an slacán a tharraingt.
Cruthaímis athróga airde_slacáin
agus lthd_slacáin
le haghaidh 20
) chun slacán beag ach fad_x@stáitse
a úsáid chun leithead a roghnú ata cothrom le 20% de leithead an stáitse.
Anois cuirimid an cód seo sa ríomhchlár:
Anois is féidir linn 2 athróg nua x_slacáin
agus y_slacáin
a dhéanamh. Cuirfimid an x- x_slacáin
cothrom le 0
, ach cad a úsáidfimid le haghaidh y_slacáin
? Má úsáidimid 0
beidh an slacán ag barr an stáitse, ach má úsáidfimid fad_y@stáitse
ní bheimid in ann an slacán a fheiceáil mar beidh sé faoi bhun an stáitse. Caithfimid airde an slacáin a fad_y@stáitse - airde_slacáin
.
Anois seo é ár ríomhchlár
airde_slacáin := 20
lthd_slacáin := fad_x@stáitse // 5
x_slacáin := 0
y_slacáin := fad_y@stáitse - airde_slacáin
gníomh tarraing_stáitse() {
>-- Cuirfimid ár cód tarraingthe anseo.
}
>-- Lúb go deo.
nuair-a fíor {
>-- Glaoigh ar an gníomh tarraing_stáitse.
tarraing_stáitse()
>-- Codail ar feadh cúple milleasoicind.
codladh(10)
}
Anois tá a fhios againn cá bhfuil ár slacán (x_slacáin
, y_slacáin
) agus airde_slacáin
, lthd_slacáin
), is féidir linn é a tharraingt.
Sula dtarraingeoimid ár slacán, ba chóir dúinn an stáitse a ghlanadh chun aon glan@stáitse
chun é sin a dhéanamh.
Tar éis é sin, is féidir linn dath@stáitse("dearg")
.
Anois táimid in ann an gníomh dron_lán@stáitse
a úsáid chun
Anois seo é ár gníomh tarraing_stáitse
:
gníomh tarraing_stáitse() {
>-- Glan an stáitse
glan@stáitse()
>-- Úsáid peann dearg
dath@stáitse("dearg")
>-- Tarraing an slacán
dron_lán@stáitse(x_slacáin, y_slacáin, lthd_slacáin, airde_slacáin)
}
Anois bainimis triail as ár ríomhchlár:
Ná dean dearmad an
Bá chóir duit slacán beag dearg ag bun an stáitse a fheiceáil.
Anois is féidir linn an slacán a tharraingt ach conas a bhogaimid é? Is féidir linn an gníomh méarchlár
Ar dtús, cruthaímis gníomh nua agus tugaimis smacht_eochrach
air. Glaofar ar an gníomh seo nuair a brúnn an úsáideoir
Anois cuirimis scríobh(eochair)
sa ghníomh, ach athróimid é sin níos déanaí.
Bainimid úsáid as an gníomh méarchlár@stáitse
chun ár ngníomh nua a méarchlár@stáitse(smacht_eochrach)
chun é sin a dhéanamh.
Tosaigh an ríomhchlár nua anseo, brúigh ar na
Ba chóir duit “ArrowRight”, “ArrowLeft”, “ArrowDown” nó “ArrowUp” a fheiceáil ar an gconsól. Tá na hainmneacha seo as Béarla mar is ainmneacha smacht_eochrach
le ainm na heochrach. Is féidir linn an
Cruthaímis anois athróg nua luas_slacáin
chun luas an slacáin a smachtú (cé chomh fada a bhogann an slacán nuair a bhrúnn an úsáideoir saighead éigin). Tosaímis leis an luach 50
.
Anois is féidir linn cód a chur inár ngníomh smacht_eochrach
chun an athróg x_slacáin
a athrú chun an slacán a bhogadh ar dheis nó ar chlé mar seo:
luas_slacáin := 50
gníomh smacht_eochrach(eochair) {
má eochair == "ArrowLeft" {
x_slacáin -= luas_slacáin
} nó má eochair == "ArrowRight" {
x_slacáin += luas_slacáin
}
}
Oibríonn an cód mar seo: má brúitear an saighead chlé, glaoitear ar an ngníomh smacht_eochrach
leis an téacs “ArrowLeft”; Má tharlaíonn é sin, x_slacáin
faoi luas_slacáin
. Ar an lámh eile, má brúitear an saighead dheis, glaoitear ar an gníomh le “ArrowRight” agus x_slacáin
faoi luas_slacáin
.
Bain triail as an cód nua: Brúigh ar ← nó → agus ba chóir duit an slacán a fheiceáil ag bogadh.
Tá ár slacán againn, agus tá sé in am an liathróid a chruthú chun preabadh x_liathróide
agus y_liathróide
. Ba mhaith linn tosú leis an liathróid sa chúinne ag barr ar chlé, dá bhrí sin tosaímis le x_liathróide
agus y_liathróide
cothrom le 0
.
Anois cruthaímis athróg nua do gha na liathróide agus cuirimis 30
isteach.
Faoi dheireadh, tá 2 athróg uainn chun treo na liathróide a smachtú. Tugaimid dx_liathróide
agus dy_liathróide
orthu. Is é an luas sa threo x é dx_liathróide
agus is é an luas sa threo y dy_liathróide
. Tosaímis leo araon cothrom le 2
.
Anois cuirimis an cód chun an liathróid a tharraingt lenár ríomhchlár. Athróimid dath an pinn go gorm agus bainfimid úsáid as an gníomh ciorcal_lán
chun an liathróid a tharraingt.
gníomh tarraing_stáitse() {
>-- Glan an stáitse
glan@stáitse()
>-- Úsáid peann dearg
dath@stáitse("dearg")
>-- Tarraing an slacán
dron_lán@stáitse(x_slacáin, y_slacáin, lthd_slacáin, airde_slacáin)
>-- Úsáid peann gorm
dath@stáitse("gorm")
>-- Tarraing an liathróid
ciorcal_lán@stáitse(x_liathróide, y_liathróide, ga_liathróide)
}
Ba mhaith linn go mbogfadh an liathróid: Cruthaímis gníomh nua bog_liathróid
agus glaoimis air inár lúb tarraingthe. Sa ghníomh seo, ba chóir dúinn an liathróid a bhogadh, dx_liathróide
sa treo x, agus dy_liathróide
sa treo y.
gníomh bog_liathróid() {
x_liathróide += dx_liathróide
y_liathróide += dy_liathróide
}
...
nuair-a fíor {
>-- Glaoigh ar an gníomh tarraing_stáitse.
tarraing_stáitse()
>-- Bog an liathróid
bog_liathróid()
>-- Codail ar feadh cúple milleasoicind.
codladh(10)
}
Rith an cód atá againn faoi láthair:
Chun bog_liathróid
a athrú. Sa ghníomh sin ba chóir dúinn seic a dhéanamh an bhfuil an liathróid ag dul thar ballaí an stáitse, agus má tá sé ba chóir dúinn é a chasadh timpeall.
Mar shampla, má bheidh an x-comhordanáid níos lú ná 0
, beidh sé imithe thar an balla chlé, dá bhrí sin ba chóir dúinn é a chasadh timpeall sa treo x. Mar an gcéanna má bheidh an x-comhordanáid níos mó ná fad_x@stáitse
ba chóir dúinn an liathróid a chasadh timpeall agus má bheidh an y-comhordanáid níos lú ná 0
ba chóir dúinn an liathróid a chasadh timpeall sa treo y.
Seo é ar gcód faoi láthair:
Cruthaímis 2 athróg nua inár gníomh: x_tuartha
agus y_tuartha
. Bainfimid úsáid astu chun suíomh na liathróide atá
gníomh bog_liathróid() {
>-- Cá bhfuil an liathróid ag dul?
x_tuartha := x_liathróide + dx_liathróide
y_tuartha := y_liathróide + dy_liathróide
>-- Déanfaimid ár seiceanna anseo
>-- Tar éis na seiceanna, úasdátaigh áit na liathróide.
x_liathróide += dx_liathróide
y_liathróide += dy_liathróide
}
Anois tá sé in am tosú ag scríobh ár loighic preibe. Chun an liathróid a chasadh timpeall sa treo x, níl le déanamh againn ach an luach dx_liathróide
a athrú go dy_liathróide
go -dy_liathróide
.
Má tá an liathróid ar tí dul thar bun an stáitse, tá an cluiche thart. Is féidir linn an gníomh stop()
a úsáid chun an ríomhchlár a stopadh.
Seo an cód chun é sin a dhéanamh:
gníomh bog_liathróid() {
>-- Cá bhfuil an liathróid ag dul?
x_tuartha := x_liathróide + dx_liathróide
y_tuartha := y_liathróide + dy_liathróide
>-- Déanfaimid ár seiceanna anseo
má x_tuartha < 0 {
>-- Beidh an liathróid thar an taobh chlé.
>-- Cas an liathróid timpeall sa treo x.
dx_liathróide = -dx_liathróide
}
má x_tuartha > fad_x@stáitse {
>-- Beidh an liathróid thar an taobh dheis.
>-- Cas an liathróid timpeall sa treo x.
dx_liathróide = -dx_liathróide
}
má y_tuartha < 0 {
>-- Beidh an liathróid thar barr an stáitse.
>-- Cas an liathróid timpeall sa treo y.
dy_liathróide = -dy_liathróide
}
má y_tuartha > fad_y@stáitse {
>-- Tá an liathróid ag dul thar bun an stáitse.
>-- Tá an cluiche thart.
scríobh("CLUICHE THART")
stop()
}
>-- Tar éis na seiceanna, úasdátaigh áit na liathróide.
x_liathróide += dx_liathróide
y_liathróide += dy_liathróide
}
Anois preabann an liathróid de na ballaí, ach fós téann sé díreach tríd an slacán. Nuair a théann an liathróid síos go dtí leibhéal an tslacáin, is féidir linn
Chun seic a dhéanamh an bhfuil an slacán faoin liathróid, is féidir linn seiceáil an bhfuil lár an liathróid (x_tuartha
) idir x_slacáin
agus x_slacáin + lthd_slacáin
.
gníomh bog_liathróid() {
>-- Cá bhfuil an liathróid ag dul?
x_tuartha := x_liathróide + dx_liathróide
y_tuartha := y_liathróide + dy_liathróide
>-- Déanfaimid ár seiceanna anseo
má x_tuartha < 0 {
>-- Beidh an liathróid thar an taobh chlé.
>-- Cas an liathróid timpeall sa treo x.
dx_liathróide = -dx_liathróide
}
má x_tuartha > fad_x@stáitse {
>-- Beidh an liathróid thar an taobh dheis.
>-- Cas an liathróid timpeall sa treo x.
dx_liathróide = -dx_liathróide
}
má y_tuartha < 0 {
>-- Beidh an liathróid thar barr an stáitse.
>-- Cas an liathróid timpeall sa treo y.
dy_liathróide = -dy_liathróide
}
má y_tuartha > fad_y@stáitse {
>-- Tá an liathróid ag dul thar bun an stáitse.
>-- Tá an cluiche thart.
scríobh("CLUICHE THART")
stop()
}
má y_tuartha > y_slacáin {
>-- Tá an liathróid ag leibhéal an tslacáin.
>-- Déan seic an bhfuil an slacán faoin liathróid?
má x_slacáin <= x_tuartha & x_tuartha <= x_slacáin + lthd_slacáin {
dy_liathróide = -dy_liathróide
}
}
>-- Tar éis na seiceanna, úasdátaigh áit na liathróide.
x_liathróide += dx_liathróide
y_liathróide += dy_liathróide
}
Bain triail as!
Oibríonn Sé! Preabann an liathróid de na ballaí agus an slacán, ach críochnaíonn an cluiche má théann sé thar bun an stáitse.
Seo cúpla