Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

JoãoCarreiro

Jogo em C# XNA

Mensagens Recomendadas

JoãoCarreiro

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!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pikax

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."

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
JoãoCarreiro

como ja tinha dito eu sei muito pouco desta linguagem, e nao consegui muito ate agora, sem ser o objeto a mover, e o ponteiro do rato esta visivel no form. fora isso nao consegui mais

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pikax

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."

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
thoga31

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! | Occasional Fortnite player

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
JoãoCarreiro

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pikax

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."

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
thoga31

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! | Occasional Fortnite player

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HoudinY

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 :D

Editado por thoga31
GeSHi

To achieve victory we must mass our forces at the hub of all power and movement, the enemy's center of gravity.-Von Clausewitz

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
JoãoCarreiro

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

Editado por JoãoCarreiro

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HoudinY

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


To achieve victory we must mass our forces at the hub of all power and movement, the enemy's center of gravity.-Von Clausewitz

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.