elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Ejemplo visual (fondo mobible-aleatorio imagenes-texto personalizado)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ejemplo visual (fondo mobible-aleatorio imagenes-texto personalizado)  (Leído 3,098 veces)
_-Javier-_

Desconectado Desconectado

Mensajes: 18


凸 ◣_◢ ( Javier )◣_◢ 凸


Ver Perfil WWW
Ejemplo visual (fondo mobible-aleatorio imagenes-texto personalizado)
« en: 21 Enero 2011, 20:23 pm »

Utilizaremos visual studio 2008
creamos un new project de tipo formulario windows
1_creamos la interfaz . utilizamos radios button(cambiamos su propiedad name y le ponemos (optwin,optball,opttext))respectivamente

2_APlicamos en siguiente
Código
  1.  
  2. Imports System.Drawing.Drawing2D
  3. Imports System.Drawing.Text
  4. Public Class Form2
  5.    Const WinkTimerInterval As Integer = 150 ' En milisegundos
  6.    Protected eyeImages(6) As Image
  7.    Protected currentImage As Integer = 0
  8.    Protected animationStep As Integer = 1
  9.    Const BallTimerInterval As Integer = 25 ' En milisegundos
  10.    Private ballSize As Integer = 16 ' Como una fracción del área de cliente
  11.    Private moveSize As Integer = 4 ' Como una fracción del tamaño de la pelota
  12.    Private bitmap As Bitmap
  13.    Private ballPositionX As Integer
  14.    Private ballPositionY As Integer
  15.    Private ballRadiusX As Integer
  16.    Private ballRadiusY As Integer
  17.    Private ballMoveX As Integer
  18.    Private ballMoveY As Integer
  19.    Private ballBitmapWidth As Integer
  20.    Private ballBitmapHeight As Integer
  21.    Private bitmapWidthMargin As Integer
  22.    Private bitmapHeightMargin As Integer
  23.  
  24.    Const TextTimerInterval As Integer = 15 ' En milisegundos
  25.    Protected currentGradientShift As Integer = 10
  26.    Protected gradiantStep As Integer = 5
  27.    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  28.        eyeImages(0) = My.Resources.dorita
  29.        eyeImages(1) = My.Resources.bwall58
  30.        eyeImages(2) = My.Resources.dorita
  31.        eyeImages(3) = My.Resources.aioros
  32.        eyeImages(4) = My.Resources.assasain
  33.        eyeImages(5) = My.Resources.bwall58
  34.    End Sub
  35.  
  36.    Private Sub exitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles exitToolStripMenuItem.Click
  37.        Me.Close()
  38.    End Sub
  39.  
  40.    Private Sub optWink_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles optWink.CheckedChanged
  41.        If optWink.Checked Then
  42.            tmrAnimation.Interval = WinkTimerInterval
  43.        ElseIf optBall.Checked Then
  44.            tmrAnimation.Interval = BallTimerInterval
  45.        ElseIf optText.Checked Then
  46.            tmrAnimation.Interval = TextTimerInterval
  47.        End If
  48.  
  49.        OnResize(EventArgs.Empty)
  50.    End Sub
  51.  
  52.    Private Sub optBall_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles optBall.CheckedChanged
  53.        If optWink.Checked Then
  54.            tmrAnimation.Interval = WinkTimerInterval
  55.        ElseIf optBall.Checked Then
  56.            tmrAnimation.Interval = BallTimerInterval
  57.        ElseIf optText.Checked Then
  58.            tmrAnimation.Interval = TextTimerInterval
  59.        End If
  60.  
  61.        OnResize(EventArgs.Empty)
  62.    End Sub
  63.    Protected Overrides Sub OnResize(ByVal ea As EventArgs)
  64.        If optWink.Checked Then
  65.  
  66.            ' Obtenga el objeto Graphics expuesto por el formulario y borre todos los dibujos.
  67.            Dim grfx As Graphics = CreateGraphics()
  68.            ' También puede llamar a grfx.Clear(BackColor) o Me.Invalidate() para borrar
  69.            ' la pantalla.
  70.            Me.Refresh()
  71.            grfx.Dispose()
  72.  
  73.        ElseIf optBall.Checked Then
  74.  
  75.            ' Obtenga el objeto Graphics expuesto por el formulario y borre todos los dibujos.
  76.            Dim grfx As Graphics = CreateGraphics()
  77.            grfx.Clear(BackColor)
  78.  
  79.            ' Defina el radio de la pelota en una fracción del ancho o el alto
  80.            ' del área de cliente, el que sea menor.
  81.            Dim dblRadius As Double = Math.Min(ClientSize.Width / grfx.DpiX, _
  82.                ClientSize.Height / grfx.DpiY) / ballSize
  83.  
  84.            ' Defina el ancho y el alto de la pelota, ya que normalmente el DPI es
  85.            ' idéntico en los ejes X e Y.
  86.            ballRadiusX = CInt(dblRadius * grfx.DpiX)
  87.            ballRadiusY = CInt(dblRadius * grfx.DpiY)
  88.  
  89.            grfx.Dispose()
  90.  
  91.            ' Defina la distancia que recorre la pelota en 1 píxel o en una fracción del
  92.            ' tamaño de la pelota, lo que sea mayor. De esta forma, la distancia que
  93.            ' recorre la pelota cada vez que se dibuja será proporcional a su tamaño que,
  94.            ' a su vez, será proporcional al tamaño del área de cliente. Por tanto, cuando
  95.            ' el área de cliente se reduce, disminuye la velocidad de la pelota, y cuando
  96.            ' aumenta, se incrementa la velocidad de la pelota.
  97.            ballMoveX = CInt(Math.Max(1, ballRadiusX / moveSize))
  98.            ballMoveY = CInt(Math.Max(1, ballRadiusY / moveSize))
  99.  
  100.            'Observe que el valor del movimiento de la pelota sirve también como
  101.            ' margen en torno a la pelota, que determina el tamaño del mapa de bits
  102.            ' real en el que se dibuja la pelota. Por tanto, la distancia recorrida por la pelota
  103.            ' es exactamente igual al tamaño del mapa de bits, lo que permite borrar
  104.            ' la imagen anterior de la pelota antes de que se dibuje la siguiente imagen, y
  105.            ' todo ello sin que se produzca un parpadeo excesivo.
  106.            bitmapWidthMargin = ballMoveX
  107.            bitmapHeightMargin = ballMoveY
  108.  
  109.            ' Determine el tamaño real del mapa de bits en el que se dibuja la pelota
  110.            ' agregando los márgenes a las dimensiones de la pelota.
  111.            ballBitmapWidth = 2 * (ballRadiusX + bitmapWidthMargin)
  112.            ballBitmapHeight = 2 * (ballRadiusY + bitmapHeightMargin)
  113.  
  114.            ' Cree un nuevo mapa de bits pasando el ancho y el alto
  115.            bitmap = New Bitmap(ballBitmapWidth, ballBitmapHeight)
  116.  
  117.            ' Obtenga el objeto Graphics expuesto por el mapa de bits, limpie la pelota
  118.            ' existente y dibuje la nueva pelota.
  119.            grfx = Graphics.FromImage(bitmap)
  120.            With grfx
  121.                .Clear(BackColor)
  122.                .FillEllipse(Brushes.Red, New Rectangle(ballMoveX, _
  123.                    ballMoveY, 2 * ballRadiusX, 2 * ballRadiusY))
  124.                .Dispose()
  125.            End With
  126.  
  127.            ' Restablezca la posición de la pelota en el centro del área de cliente.
  128.            ballPositionX = CInt(ClientSize.Width / 2)
  129.            ballPositionY = CInt(ClientSize.Height / 2)
  130.  
  131.        ElseIf optText.Checked Then
  132.            ' Obtenga el objeto Graphics expuesto por el formulario y borre todos los dibujos.
  133.            Dim grfx As Graphics = CreateGraphics()
  134.            grfx.Clear(BackColor)
  135.        End If
  136.    End Sub
  137.  
  138.    Private Sub tmrAnimation_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrAnimation.Tick
  139.        If optWink.Checked Then
  140.  
  141.            ' Obtenga el objeto Graphics expuesto por el formulario.
  142.            Dim grfx As Graphics = CreateGraphics()
  143.  
  144.            ' Llame a DrawImage, mediante Overload #8, que obtiene la imagen actual para su
  145.            ' presentación, las coordenadas X e Y (que, en este caso, centra la
  146.            ' imagen en el área de cliente) y el ancho y alto de la imagen.
  147.            grfx.DrawImage(eyeImages(currentImage), _
  148.                CInt((ClientSize.Width - eyeImages(currentImage).Width) / 2), _
  149.                CInt((ClientSize.Height - eyeImages(currentImage).Height) / 2), _
  150.                eyeImages(currentImage).Width, _
  151.                eyeImages(currentImage).Height)
  152.            ' Es aconsejable que siempre se llame a Dispose para los objetos que exponen este
  153.            ' método, en lugar de esperar a que el recolector de elementos no utilizados se ejecute automáticamente.
  154.            ' De esta forma, obtendrá siempre un mayor rendimiento de la aplicación.
  155.            grfx.Dispose()
  156.  
  157.            ' Recorra en bucle las imágenes.
  158.            currentImage += animationStep
  159.            If currentImage = 5 Then
  160.                ' Ésta es la última imagen de las cuatro, por lo que debe invertir el orden de
  161.                ' animación .
  162.                animationStep = -1
  163.            ElseIf currentImage = 0 Then
  164.                ' Ésta es la primera imagen , por lo que debe invertir el orden de
  165.                ' animación
  166.                animationStep = 1
  167.            End If
  168.  
  169.        ElseIf optBall.Checked Then
  170.  
  171.            ' Obtenga el objeto Graphics expuesto por el formulario.
  172.            Dim grfx As Graphics = CreateGraphics()
  173.            ' Dibuje el mapa de bits que contiene la pelota en el formulario.
  174.            grfx.DrawImage(bitmap, _
  175.                CInt(ballPositionX - ballBitmapWidth / 2), _
  176.                CInt(ballPositionY - ballBitmapHeight / 2), _
  177.                ballBitmapWidth, ballBitmapHeight)
  178.  
  179.            grfx.Dispose()
  180.  
  181.            ' Aumente la posición de la pelota en la distancia que se ha
  182.            ' movido en las coordenadas X e Y después de haber sido redibujada.
  183.            ballPositionX += ballMoveX
  184.            ballPositionY += ballMoveY
  185.  
  186.            ' Invierta la dirección de la pelota cuando toque un extremo.
  187.            If ballPositionX + ballRadiusX >= ClientSize.Width _
  188.                Or ballPositionX - ballRadiusX <= 0 Then
  189.                ballMoveX = -ballMoveX
  190.                Beep()
  191.            End If
  192.            ' Defina el extremo Y en 80 en lugar de en 0 para que la pelota no rebote
  193.            ' en los controles del formulario.
  194.            If ballPositionY + ballRadiusY >= ClientSize.Height _
  195.                Or ballPositionY - ballRadiusY <= 80 Then
  196.                ballMoveY = -ballMoveY
  197.                Beep()
  198.            End If
  199.  
  200.        ElseIf optText.Checked Then
  201.  
  202.            ' Obtenga el objeto Graphics expuesto por el formulario.
  203.            Dim grfx As Graphics = CreateGraphics()
  204.  
  205.            ' Defina el tipo de fuente, el texto y determine su tamaño.
  206.            Dim font As New Font("Microsoft Sans Serif", 96, _
  207.                FontStyle.Bold, GraphicsUnit.Point)
  208.            Dim strText As String = "Javier_Vidarte_Delgado "
  209.            Dim sizfText As New SizeF(grfx.MeasureString(strText, font))
  210.  
  211.            ' Defina el punto en el que se va a dibujar el texto: centrado
  212.            ' en el área de cliente.
  213.            Dim ptfTextStart As New PointF( _
  214.                CSng(ClientSize.Width - sizfText.Width) / 2, _
  215.                CSng(ClientSize.Height - sizfText.Height) / 2)
  216.  
  217.            ' Defina el punto inicial y final de inclinación; este último se ajustará
  218.            ' mediante un valor cambiante para producir el efecto de animación.
  219.            Dim ptfGradientStart As New PointF(0, 0)
  220.            Dim ptfGradientEnd As New PointF(currentGradientShift, 200)
  221.  
  222.            ' Cree una instancia del pincel utilizado para dibujar el texto.
  223.            Dim grBrush As New LinearGradientBrush(ptfGradientStart, _
  224.                ptfGradientEnd, Color.Blue, BackColor)
  225.  
  226.            ' Dibuje el texto centrado en el área de cliente.
  227.            grfx.DrawString(strText, font, grBrush, ptfTextStart)
  228.  
  229.            grfx.Dispose()
  230.  
  231.            ' Mueva la inclinación e inviértala cuando obtenga un determinado valor.
  232.            currentGradientShift += gradiantStep
  233.            If currentGradientShift = 500 Then
  234.                gradiantStep = -5
  235.            ElseIf currentGradientShift = -50 Then
  236.                gradiantStep = 5
  237.            End If
  238.        End If
  239.    End Sub
  240. End Class




« Última modificación: 21 Enero 2011, 21:17 pm por _-Javier-_ » En línea



Uploaded with ImageShack.us
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Listar Imagenes de usuarios de Windows (source/funcion con ejemplo)
Programación Visual Basic
el_c0c0 1 1,789 Último mensaje 6 Octubre 2008, 03:53 am
por seba123neo
Tutorial Photoshop Texto y fondo
Diseño Gráfico
maxwellnewage 1 3,051 Último mensaje 17 Octubre 2009, 20:00 pm
por peib0l
Leer texto base y generar otro aleatorio {JAVA}
Java
drachmatizando 0 3,256 Último mensaje 16 Septiembre 2010, 19:24 pm
por drachmatizando
Confirm dos botones con texto personalizado
Desarrollo Web
Pablo Videla 2 4,702 Último mensaje 20 Junio 2013, 20:40 pm
por Pablo Videla
Redirigir imágenes de publicidad a un link de un gif personalizado
Hacking
raubtier 3 2,739 Último mensaje 20 Septiembre 2013, 01:38 am
por .:UND3R:.
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines