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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


  Mostrar Temas
Páginas: [1] 2
1  Media / Juegos y Consolas / ¿Qué estudiar? OpenGl vs DirectX en: 14 Diciembre 2013, 05:36 am
Saludos :)

Escribo este post un poco con la esperanza de poder aclarar y aclararme cual debería ser el camino a seguir, según qué situaciones, para desarrollar videojuegos, centrándonos en el tema de programar, más que de hacer diseño de niveles.

Yo ya tengo algunos conocimientos básicos, por lo que mi duda va más orientada hacia el futuro, que hacia la actualidad.

Personalmente, uso Unity, como muchos cientos, debido a su facilidad y a que permite hacer real, sin demasiados conocimientos, muchas de las cosas que queramos. No quiero entrar en el debate de si es bueno o no, bajo mi punto de vista, aunque Unity en la actualidad me permite calmar las ganas de crear juegos, me gustaría entender mejor como funciona lo que hay por detrás.

He estudiado algo de XNA, y con ello aprendí (un poco) el tema de la matrices, las proyecciones, y ya sólo de ojeada, el lenguaje que usa para los shaders.

Mi problema, e imagino que el de cualquiera que empiece en esto, es qué camino debería seguir uno llegados a este punto, en el que más o menos te defiendes, sabes, más o menos lo que es programar, y ya has hecho algunos trabajos reales en .NET y por placer en Android SDK y Unity.

Existen muchas API diferentes en este bonito mundo, y supongo que aquí se empieza a notar mi desconocimiento, porque no sé ni si se llaman API, engine o cómo exactamente.

Me refiero a: XNA, DirectX y OpenGL. (ya sé que XNA no está al mismo nivel, pero tampoco se aleja mucho por lo que leí en su momento)
Aunque he visto otros frameworks tipo Dark GDK (http://www.thegamecreators.com/?m=view_product&id=2128), creo, que son variaciones de estos primarios. Y supongo que XNA es una variación de DirectX. ¡Cuantas suposiciones! xD

Mi problema es que quiero verlos todos, y no abarco ninguno. Miro un poco de XNA, y luego paso a OpenGL (más bien OpenGL ES) y asi continuamente.

Por ejemplo, ¿para programar un visor de objetos 3D y poder crearlos, tipo 3DMax, que usaría? Imaginad la pregunta en su modo más simple, obviamente, no me refiero a programar 3dsmax.

Vale, me diréis que OpenGL es compatible con todos los SO, DirectX es privativo, y que XNA está muerto.

Pero para entender mejor todo el tema de la programación 3D, y al mismo tiempo, estudiar algo que me complemente en el futuro, ¿qué sería la mejor opción?

Personalmente, mi pequeño sueño desde niño ha sido programar Doom 1 como lo hizo John Carmack, sin Unity, UDK, ni nada. Un poco de C, pizza y muchas ganas.

Pero si de los sueños podemos sacar algo util, mejor, por eso mi duda va un poco orientada a qué estudiar, pero que me ayude a seguir mejorando en el futuro.

Ya sabéis como funciona esto, estudias una cosa, y poco después ves que otra cosa que usabas, se basa en esa misma. No digo que quiera llegar a ASSEMBLY, tampoco quiero exagerar, pero al menos no sentir que no tengo ni idea cómo funciona internamente un Raycast en Unity.

Otra duda que siempre he tenido, y tarde o temprano, yo creo que cualquiera que se meta en este mundo se plantea es... ¿cómo se diseña un nivel?

Me refiero: Si usas XNA, hagas lo que hagas, lo haces escribiendo, no hay un visor como en Unity o en UDK. Puedo entender que programes los objetos para que actúen de de una u otra manera según que situaciones, pero por ejemplo, un mapa del Doom, que tiene una forma establecida, unos enemigos en unas posiciones establecidas y unas texturas establecidas, ¿cómo cargas todo ese 3D a nivel de código? Teniendo en cuenta que hay colisiones, distintos materiales, animaciones en las puertas, texturas... Por  no hablar de un Mario Bros, con los trozos de tierra (donde los pies hacen contacto con el suelo, vamos :P) en X sitios a lo largo de un más que extenso ancho que ocuparía mucho más que un folio A4 dibujado a mano.

Estas ultimas preguntas son demasiado especificas, pero mi verdadera pregunta es: ¿Qué tengo que estudiar para responderme todas esas dudas?

Creo que si hubiera continuado estudiando XNA habría podido responder esa ultima pregunta, pero me daba tanta cosas que haya donde fuera me dijeran que XNA estaba muerto, y que usara DirectX o OpenGl... Jajaja, pero claro, ¿cual? :)

Muchas gracias por leerme!
Un saludo :)
2  Programación / Scripting / Variables que no se guardan fuera de funcion (Python) en: 3 Octubre 2012, 20:05 pm
Saludos,

La verdad es que ya no sé si me esta tomando el pelo o qué pasa aquí. Estoy programando bajo la API de Autodesk Maya sobre Python algo muy, muy básico: cambiar el valor de una variable mediante una función.

Pero mi asombro y mi desesperación es que, si cambio el valor de la variable desde dentro de la función (en teoría, es una variable creada FUERA de la función, por lo que debería ser global) y sin salir de la función, le digo que me haga un print del valor... funciona.

Pero en cuanto llamo a la misma variable (se supone, ya modificada) desde otra función, no hace nada. Simplemente, deja el valor con el que fue creada la variable :(

Es como si creara una segunda variable en mi función o no guardara nada o no sé qué u.u

¿Alguna sugerencia?

Código:
import maya.cmds as mc

variable = '_MAL_'
collection1 = mc.radioCollection()

ventana = mc.window(t = 'a')
mc.columnLayout(adj = True)

mc.radioButton(l = 'A', cl = collection1, onc = 'F1()')
mc.radioButton(l = 'B', cl = collection1, onc = 'F2()')
mc.button(l = 'ver', c = 'Ver()')

mc.showWindow(ventana)

def F1():
    variable = 'A'
    print 'variable modificada a A'
    print 'valor leido desde F1(): ' + variable

def F2():
    variable = 'B'
    print 'variable modificada a B'
    print 'valor leido desde F2(): ' + variable
    
def Ver():
    print variable

Un saludo y gracias!
3  Comunicaciones / Redes / Router SMC7004VBR fantasma? en: 16 Septiembre 2012, 15:35 pm
Saludos comunidad :)

Vengo aquí en busca de ayuda porque ya no sé qué hacer. Ni siquiera sé que es lo que esta pasando, ojala alguien pueda darme algún consejo o sepa que esta ocurriendo.

El tema es un poco extraño, así que lo explico:

Tengo contratado una linea ADSL con Orange -aunque hasta hace dos días, tenia una de Jazztel en la que duré cerca de tres años- en la que un técnico nos añadió una nueva linea (yo, personalmente, le vi introducir un cable en la central de mi comunidad y llevarlo hasta un nuevo PTR en mi casa) con la que llevo desde hace dos días.

El problema viene en que, tanto antes, como ahora, el rango correcto de IP en mi hogar es de 192.168.1.XXX. El nuevo router, funciona por DHCP, por lo que, cuando funciona, la IP que me da es una valida e Internet funciona correctamente.

Pero a veces, porque sí, me da un IP distinta: 192.168.2.XXX y claro, ahí ya no tengo Internet. Investigué un poco, y metiendome en la puerta de enlace: 192.168.2.1 puedo entrar en un rotuer (SMC7004VBR) que en mi casa no existe.

Sé que es ese router porque metiéndome en 192.168.2.1 dentro de un navegador llego hasta él.

No tengo ese router por ningún sitio, no existe. Sin embargo, a veces recibo esa IP. Hace años es cierto que ese router estuvo en mi casa, pero hace años. Hoy por hoy, ni siquiera esta a 10km a la redonda de donde yo vivo. Sinceramente, creo que incluso se tiró a la basura. La conexión funciona así:

El router de Orange (el bueno) tiene un cable directo hasta un HUB nque a su vez, saca otro cable que llega a mi sobremesa. No hay más intermedios, y sin embargo, a veces recibo esa otra IP (este HUB a parte, va otro sobremesa, sin embargo, la IP mala la da este o no encendido este otro ordenador, por lo que no creo que sea por ahí)

¿Alguien sabe que puede estar pasando? ¿Qué es este router? ¿Es posible que sea de algún vecino? Es que no tiene sentido, porque va por cable!! D:

Otros datos que quizás sean importantes:

Dentro del router fantasma, dentro de Status, tengo esta información que no he sido capaz de encontrar donde cambiarla:

Barricade Settings
IP Address: 192.168.2.1
Subnet Mask: 225.225.225.0
DHCP Server: Enabled
Firewall: Deisabled
UPnP: Disabled

La información que sale en Connection Status si que la he podido cambiar, y le he dado la información de mi ISP pero nada... Si no puedo destruirlo, al menos que de la información correcta >.<

La verdad que ya no sé que hacer.

Un saludo a todos :)
4  Programación / Programación C/C++ / Tamaño bytes para una estructura en: 9 Agosto 2012, 17:26 pm
Saludos :)

Vengo con una duda a ver si alguien puede ayudarme un poco  ^^ Es un tema de concepto, que no sé si estoy haciendo bien algo.

Hablo de la función memset y como la he aplicado. Se supone que esta función sirve para inicializar una matriz a 0, indicandole el tamaño en bytes que queremos que ocupe.

Pero, ¿y cuando esa matriz es una matriz de estructura?
Mi código funciona, pero no tengo muy claro sí está bien programado:

Código:
typedef struct
{
char Nombre[20];
char Direccion[30];
int Telefono;
int Nota;
nDias Dias;
}fichaPersona;

fichaPersona Alumnos[20];

memset(Alumnos, 0, sizeof(int) * 20);

al parametro de sizeof le he dicho que es un entero. Pero la matriz Alumnos que tiene 20 posiciones, esta compuesta por 5 enteros y dos char.

¿Es correcto entonces poner sizeof(int) o tendria que poner otra cosa? A mi entender un solo entero tiene que ocupar menos bytes que 6 variables unidas :S

Muchas gracias! :)
Un saludo
5  Programación / Programación C/C++ / getch() y getche() sin conio.h en: 28 Julio 2012, 21:58 pm
Saludos :)

Sólo queria preguntar una duda que tengo. Cuando compilo un programa en C e incluyo el #define <stdio.h> pero no el conio.h puedo usar las funciones getch() y getche.

Sin embargo, si busco en la librería de stdio.h no salen, sin embargo si para la librería conio.h.

¿Es posible que funcione por compilar desde Windows aunque no incluya las librerías? Es que no se muy bien por que pasa eso :)

Del mismo modo, puedo usar system() sin incluir stdlib.h :S

Gracias
6  Programación / .NET (C#, VB.NET, ASP) / Controlar un IndexOutofRangeException de un Array en: 22 Noviembre 2011, 08:20 am
Saludos a todos :)

Os vengo con una duda un tanto complicada >.<

¿Hay alguna forma de poder controlar un IndexOutofRangeException de un Array?

El problema está en que tengo un función que llama a otra, donde esta ultima usa un Array con un Split siendo el indice de esta llamada por la primera.

La función que usa el Split:

Código:
Public Function ReadCommand(ByVal frase As String, ByVal nWord As Integer) As String
        Dim ArrayCommand() As String = Split(frase)
        Return ArrayCommand(nWord).ToString
    End Function

//Module: stx_mll

Y la función que llama esta primera:

Código:
   Public Sub cmd_clear()
        Try
            Select Case stx_mll.ReadCommand(txtRead, 1)
                Case "-all"
                    ClearScreenDelftonesScript()
                Case Else
                    cmd_error()
            End Select
        Catch
            ClearScreenDelftonesScript()
            StartDelftonesScript()
        End Try
    End Sub

Esta ultima función, como podéis ver, ya la controlo con un Try, pero me preguntaba si no habría alguna forma un poco más elegante que esta :)

Muchas gracias a todos,
un saludo
7  Programación / .NET (C#, VB.NET, ASP) / Separar palabras de una frase en: 21 Noviembre 2011, 05:14 am
Saludos :)

Llevo un tiempo con este código que no logro que funcione "del todo"
Estoy buscando una forma en la que al escribir una frase, se separan las palabras una por una, aunque mi código ahora mismo sólo funciona con la primera palabra o la ultima de una frase u.u

Este es el código para sacar la primera palabra, que aunque no funciona como yo quisiera, funciona:

Código:
Public Function FirstWord(Byval frase As String) As String
Dim word As String = ""

For i As Integer = 1 To Len(frase)
'Analizamos desde la posición 1 hasta el maximo de la frase por un For buscando el espacio en blanco
'para saber que se comienza a escribir una segunda palabra, y por tanto, sabemos cual es la primera
If Mid(frase,i,1) = " " Then
word = Mid(frase, 1, (i - 1))
Return word
Exit for
End If
Next
If word = "" Then
'Si la variable "word" no tiene nada guardado (esto se debe a que solo hay una palabra en la frase)
'procedemos a guardar en word la frase entera
Return frase
End If
End Function

Y la función para la ultima palabra (que deberia ser la segunda, no la ultima u.u)
Básicamente hago lo mismo que en la primera para sacar la primera palabra, y a a partir de ahí, la "quito" para que lo vuelva analizar ya sin esa primera palabra:

Código:
Public Function SecondWord(ByVal frase As String) As String
Dim word As String = ""
Dim startSecondWord As Integer = 0

For i As Integer = 1 To Len(frase)
If Mid(frase, i, 1) = " " Then
startSecondWord = i + 1 'añadimos el +1 para que se salte el espacio y comienze por la 2º palabra directamente
frase = Mid(frase,startSecondWord) 'Guardamos la frase ya con la primera palabra quitada
End If
Next

For x As Integer = 1 To Len(frase)
If Mid(frase, x, 1) = " " Then
word = Mid(frase,1, (x - 1))
Return word
Exit For
End If
Next
If word = "" Then
'Si la variable wrod esta vacia, igual que en FirstWord devolvemos la frase entera, que ya ha sido cortada la primera
'palabra el primer For de esta función
return frase
End If
End Function

No se si es posible saber si un cadena llega a su fin, así no necesitaría buscar ese espacio, que es el mismo que me cusa el problema de que si solo hay una palabra en toda la frase, necesite del ultimo If Then para sacarla >.<

Si alguien me pudiera dar algún consejo se lo agradecería :)

Un saludo
8  Programación / .NET (C#, VB.NET, ASP) / FileNotFoundException cuando si existe en: 10 Septiembre 2011, 11:09 am
Saludos :)

No logro entender que pasa. A ver si alguien me puede ayudar :)
En un principio pensé que quizás era temas de privilegios, pero aunque lo quitaba de C:\ para ponerlo en un disco normal sigue fallando:

Código
  1.    Sub Main()
  2.        MsgBox(My.Computer.FileSystem.FileExists("C:\Users\abreu20011\Desktop\a.jpg"))
  3.        Shell("C:\Users\abreu20011\Desktop\a.jpg")
  4.    End Sub

El MsgBox me da TRUE, asi que no entiendo por qué cuando llega al Shell me salta un FileNotFoundException :(

¿Hay algún otro método para abrir otro tipo de ficheros que no sean ejecutables (como la foto o un vídeo)? Quizás lo que está mal es usar Shell :S

Gracias ^^
9  Programación / .NET (C#, VB.NET, ASP) / Handles (VB.NET) en: 26 Agosto 2011, 00:58 am
Saludos :)

Estoy trabajando con el IDE SharpDevelop (con framework 3.5) y no sé si hay algo que hago mal (seguramente) o es que este IDE no vale para nada :S

Cuando declaramos un evento en Visual Studio, tenemos el "Handles" para poder decidir si el evento es por click, dobleclick, etc... Simplemente pongo:

Código:
Sub Label1Click(sender As Object, e As EventArgs) Handles Label1.Click
Msgbox("Hola")
End Sub

Y al pulsar sobre el botón, saltará el MsgBox. Pero si hago exactamente lo mismo en SharpDevelop me dice que "Handles" requiere de una clausula "WithEvents" :S

¿Alguien me podría ayudar? Necesito usar ese handles porque quiero que esto funcione por doble click y no por uno :S

Gracias :)
10  Programación / .NET (C#, VB.NET, ASP) / POO que no quiere funcionar bien en: 8 Agosto 2011, 06:17 am
Saludos :)

Estoy haciendo un programa (bueno, más bien, mejorando el codigo de un programa mio) teniendo más en cuenta la POO pero, aunque funciona, no lo hace correctamente. A ver si alguien sabría decirme porqué >.<

Tengo una clase con varias variables privadas, que se generan por un metodo que no devuelve valor (sub) que le asigna a cada variable un valor. Esto esta hecho así, porque no entiendo porqué no me deja asignar los valores directamente en la clase, por ejemplo:

Código
  1. Dim variableArray() As String
  2. variableArray(0) ="Ejemplo 1"
  3. variableArray(1) ="Ejemplo 2"

Me dice "declaration Expected" si lo hago asi, por lo que lo meti en el Sub y no dió más problemas... aunque no entiendo porqué, en cambio, si lo hago asi:

Código
  1. Dim variableArray() As String = {"Ejemplo 1","Ejemplo 2"}

Sí funciona :( (pero es que queda muy poco claro, y son muchisimas variable y muchisimos datos para hacerlo "todo en una linea" la idea era que fuera más claro =(

Pero como funcionaba, más o menos me di por satisfecho, hasta que llego la parte en la que el programa llama a este metodo.

En un principio cree la clase en el Main, por ejemplo:

Código
  1. Dim clase As Clase_class = New Clase_class
  2. clase.GenerateTask '<- Asi es como he llamado al metodo para que asigne los valores

Pero, aunque no da error, no hace nada... es como si no llamara a ese metodo.
Este es el codigo del botón:


Código
  1. Dim ListaTareas As ListaTareas_class = New ListaTareas_class
  2. Sub General_programas_btnClick(ByVal sender As Object, ByVal e As EventArgs)
  3.   ListaTareas.GenerateTask
  4.  
  5.   Me.general_tarea_info_lbl.Text= ListaTareas.ShowTaskName(0, 0)
  6.   Me.general_info_info_lbl.Text = ListaTareas.ShowTaskInfo(0, 0)
  7. End Sub


Como esta expuesto así sí funciona, pero claro, tengo muchos más botones, y no creo que sea una solución correcta (aunque funcionar, funciona) añadirle el GenerateTask en cada botón.
¡Es como decirle al programa que haga una y otra vez lo mismo no siendo necesario!

Estoy seguro que es un problema de lógica, que algo debo estar olvidando, pero por más que miro y miro el código, no sé me ocurre otra manera de hacerlo funcionar :(

Muchas gracias,
y un saludo ^^
Páginas: [1] 2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines