Jump to content

Recommended Posts

Posted

Boas pessoal, comecei a explorar esta linguagem de programação há pouco tempo, e estava a tentar desenvolver um joguinho simples.

Algo como um objecto a saltar, que de bounce pelas paredes do "form" e o objectivo seria clicar em cima do objeto para obter a maior pontuação, ao clicar no objeto a pontuação aumentava por 1, e ao falhar reiniciava o score, tambem por cada click a velocidade do objeto a saltar aumenta.

Eu ja tenho o objeto a saltar, so estou com dificuldades em inserir a interface do rato e colocar texto no form que va incrementando com cada clique, se alguem me podesse dar uma ajudinha ficaria agradecido

cumprimentos!

Posted

tens varias formas de fazer isso, o que ja tentaste?

Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Posted

podes usar uma label, depois quando a pontuacao mudar mudas o texto da labal:

labelPontuacao.Text = m_pontuacao.ToString();

Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Posted

Que objecto é esse?

Quando dás um clique com o rato, tens de saber:

1) a actual posição do objecto

2) o tamanho do objecto (suponho que é constante)

3) onde o rato clicou.

Depois, verificas se a área onde o rato foi clicado está dentro da área do objecto.

Knowledge is free!

Posted

como e' que estas a incrementar a posicao da imagem?

Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Posted

o objeto é uma simples imagem png que esta constantemente a "passear" dentro do form, e ao enbater numa parede prossegue o caminho oposto por isso a posiçao é variavel o que me esta a dificultar um pouco

Dificulta em quê? Em vez de perguntares se a posição do rato está dentro do rectângulo com as coordenadas fixas [(0, 0); (30, 30)], perguntas se ele está dentro do rectângulo [(posição.x, posição.y), (posição.x + tamanho.x, posição.y + tamanho.y)]. Uma variável é um valor, a única diferença é que este varia.

Knowledge is free!

Posted (edited)

Boas João experimenta meter isto no void update:

if (Mouse.GetState().LeftButton == ButtonState.Pressed) //Quando o botão é clicado
               {  if (Mouse.GetState().X < Player.X + Player.width) //Quando a posição X do botão é a mesma do objecto
                   {  if (Mouse.GetState().X > Player.X) //Quando a posição X do botão é a mesma do objecto
                       {    if (Mouse.GetState().Y < Player.Y + Player.height) //Quando a posição Y do botão é a mesma do objecto
                            {    if (Mouse.GetState().Y > Player.Y) //Quando a posição Y do botão é a mesma do objecto
                                   deltavelocity+=1; //Aumentar a variavel da velocidade do boneco com um valor à escolha
                            }
                       }
                   }
               }

Deve fazer o que queres 😄

Edited by thoga31
GeSHi
Posted (edited)

Vou experimentar

edit: as variaveis player e deltavelocity nao estao definidas e estou a ter erro por isso, se me disseres onde as deva de definir secalhar consigo meter a funcionar

Edited by JoãoCarreiro
Posted

player é a variável texture2d que já deves ter no ecrã a "passear" e deltavelocity é o incremento de velocidade no player, se for uma constante então não há necessidade de a criares.

eu crio-as após esta linha:

public class [nomedoteujogo] : Microsoft.Xna.Framework.Game

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.