Code-Makers ha revivido. It's alive! Bienvenidos! Presentate aca!

Simple Pong en C# (Window Form - Visual Studio)

Avatar de Usuario
JohnConnor
Nos vamos conociendo
Nos vamos conociendo
Mensajes: 89
Registrado: Mar Ene 05, 2016 12:59 am
Ubicación: Argentina
Contactar:

Simple Pong en C# (Window Form - Visual Studio)

Mensajepor JohnConnor » Jue Feb 25, 2016 12:07 am

Buenas, con todos los buenos recuerdos que me trae CM quería aportar a la comunidad para que vuelva a ser tan grande como en sus épocas de gloria; pensé en colgar los últimos proyectos (mini proyectos) en Unity3D y Mono pero me di cuenta de que necesitaría un tutorial de Unity de antemano por ende ahora estoy trabajando en el mismo. Como tentempié les dejo un juego programado en C# Usando windows forms.

Imagen
https://youtu.be/AiuL8CWKyG8


Código: Seleccionar todo

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace PongCSharp
{
    public partial class Form1 : Form
    {

        public bool EstadoPlay;
        public int PelotaXpos;
        public int PelotaYpos;
        public int JugadorXpos;
        public int JugadorYpos;

        public bool TeclaW;
        public bool TeclaS;

        public string pDirectX;
        public string pDirectY;

        public int PuntosJugador;
        public int PuntosCom;
        public Form1()
        {
            InitializeComponent();
        }

 

        private void timer1_Tick(object sender, EventArgs e)
        {
            this.textBox1.Focus();
            if (EstadoPlay)
            {
               Pelota.Location = new Point(PelotaXpos, PelotaYpos);
                Jugador1.Location = new Point(JugadorXpos, JugadorYpos);
            }
            IA();
            EventosTeclado();
            CheckColision();
            MovPelota();
        }



        private void Form1_Load(object sender, EventArgs e)
        {
            EstadoPlay = true;
            PelotaXpos = 100;
            PelotaYpos = 100;
            JugadorXpos = 52;
            JugadorYpos = 157;
            TeclaW = false;
            TeclaS = false;
            pDirectX = "izquierda";
            pDirectY = "abajo";
            PuntosJugador = 0;
            PuntosCom = 0;
        }



        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            if (textBox1.Text == "w" || textBox1.Text == "ww" || textBox1.Text == "www")
            {
                TeclaW = true;
                TeclaS = false;
            }

            if (textBox1.Text == "s" || textBox1.Text == "ss" || textBox1.Text == "sss")
            {
                TeclaS = true;
                TeclaW = false;
            }
                textBox1.Text = "";
        }

        public void EventosTeclado()
        {
 
            if (TeclaW && JugadorYpos > 50)
            {
                JugadorYpos -= 3;
            }
            if (TeclaS && JugadorYpos < 300)
            {
                JugadorYpos += 3;
            }
        }

        public void MovPelota()
        {
          if (pDirectX == "derecha")
            {
                PelotaXpos += 5;
            }
            if (pDirectX == "izquierda")
            {
                PelotaXpos -= 5;
            }

            if (pDirectY == "abajo")
            {
                PelotaYpos += 5;
            }
            if (pDirectY == "arriba")
            {
                PelotaYpos -= 5;
            }


            if (PelotaXpos < 10)
            {
                pDirectX = "derecha";
                PuntosCom += 1;
                PuntosJugador2.Text = PuntosCom.ToString();
            }
            if (PelotaXpos > 630)
            {
                pDirectX = "izquierda";
                PuntosJugador += 1;
                PuntosJugador1.Text = PuntosJugador.ToString();
            }


            if (PelotaYpos < 10)
            {
                pDirectY = "abajo";
            }
            if (PelotaYpos > 450)
            {
                pDirectY = "arriba";
            }
        }

        static bool Coliciones(int x1, int width1, int y1, int height1, int x2, int width2, int y2, int height2)
        {
            if (x1 + width1 > x2 && x1 < x2 + width2 && y1 + height1 > y2 && y1 < y2 + height2) {
             return  true;
            } else {
            return  false;
                }
        }

   
        public void CheckColision()
        {
            if (Coliciones(JugadorXpos, Jugador1.Width, JugadorYpos, Jugador1.Height, PelotaXpos, Pelota.Width, PelotaYpos, Pelota.Height))
                if (pDirectX == "izquierda")
                {
                    pDirectX = "derecha";
                }

            if (Coliciones(Jugador2.Left, Jugador2.Width, Jugador2.Top, Jugador2.Height, PelotaXpos, Pelota.Width, PelotaYpos, Pelota.Height))
                if (pDirectX == "derecha")
                {
                    pDirectX = "izquierda";
                }
        }


        public void IA()
        {
            if (PelotaXpos < Jugador2.Top + Jugador2.Height / 2 && pDirectX == "derecha")
            {
                Jugador2.Top -= 3;
            }
            if (PelotaXpos > Jugador2.Top + Jugador2.Height * 2 && pDirectX == "derecha")
            {
                Jugador2.Top += 3;
            }
        }
        //Final
    }
}


Descargar EXE: https://mega.nz/#!ZVBE2RzQ!onEVbnnAHwUe ... u1dO7D1Qao


Imagen

EL QUE NO DICE LA VERDAD, ES PORQUE ESTA MINTIENDO
Avatar de Usuario
ni0
Arquitecto
Mensajes: 121
Registrado: Mar Nov 17, 2015 4:07 pm

Re: Simple Pong en C# (Window Form - Visual Studio)

Mensajepor ni0 » Sab Feb 27, 2016 7:19 pm

Excelente! Y Recien vi que hasta en el video pusiste el link al nuevo CM :D Gracias
ni0 escribió:como te habras dado cuenta para Stallman, Linus y todos los que los siguen se refieren al hacking a la accion de programar porque les (nos?) da orgasmos (cuak cuak)

ni0 [at] code-makers [dot] es
Johan
Recien llegado
Recien llegado
Mensajes: 1
Registrado: Sab Abr 15, 2017 12:59 am

Re: Simple Pong en C# (Window Form - Visual Studio)

Mensajepor Johan » Sab Abr 15, 2017 1:46 am

hola queria saber que herramienta usaste para las raquetas y la pelota?

Volver a “C#”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado