Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Saberuneko

#1241
Programación Visual Basic / Re: Randomize Timer?
3 Noviembre 2011, 22:47 PM
Cita de: 79137913 en  3 Noviembre 2011, 15:31 PM
HOLA!!!

El sub Randomize (seed) funciona con cualquier numero.

Se suele utilizar Timer.

GRACIAS POR LEER!!!

Si, en Basic se usa "Randomize Timer", literalmente.

He probado, las flotas se generan ahora de forma variada y aleatoria, ¡muchísimas gracias!

Una duda, sólo curiosidad, cómo funciona "Randomize"? Funciona de forma similar a "Randomize Timer" de basic? O funciona de otra forma?
#1242
Programación Visual Basic / Randomize Timer?
3 Noviembre 2011, 12:08 PM
Hola, en Basic, siempre he usado Randomize Timer para obtener un resultado lo más parecido a algo verdaderamente aleatorio...
En el juego que estoy desarrollando, pensé en utilizar lo mismo en Visual Basic para generar un conjunto de naves aleatorias que atacarían a la flota del jugador.

Sin Randomize Timer funciona, pero siempre me genera las mismas naves así que realmente no me vale.

Ésta es la parte del código que tengo hecha para generar dichas naves y cargarlas en pantalla:

Cabecera del Frame:
Option Explicit

Dim enemy1 As Ship
Dim enemy2 As Ship
Dim enemy3 As Ship
Dim enemy4 As Ship
Dim enemy5 As Ship

Randomize Timer


Sub que genera una flota enemiga aleatoria:
-Storage.shipdb contiene tanto los nombres de naves como las rutas de las imágenes a cargar, sus stats etc. Haré que esta pseudo-base de datos se cargue desde ficheros luego, de momento esto es experimental. (Así que no nos centremos en mi chapuza :3)
-Si necesitáis todo el código para orientarme, decídmelo y paso también el módulo storage que contiene todas las estructuras, arrays, etc... No pongo más de momento, ya que mi única duda es sobre cómo utilizar Randomize Timer correctamente.
Private Sub enemyload()
Dim dice As Integer
If Storage.level > 10 Then
    dice = Int((Rnd * 5) + 1)
Else
    dice = Int((Rnd * 3) + 1)
End If

    Select Case (dice)
        Case 1
            enemy1.exists = True
            enemy2.exists = False
            enemy3.exists = False
            enemy4.exists = False
            enemy5.exists = False
        Case 2
            enemy1.exists = True
            enemy2.exists = True
            enemy3.exists = False
            enemy4.exists = False
            enemy5.exists = False
        Case 3
            enemy1.exists = True
            enemy2.exists = True
            enemy3.exists = True
            enemy4.exists = False
            enemy5.exists = False
        Case 4
            enemy1.exists = True
            enemy2.exists = True
            enemy3.exists = True
            enemy4.exists = True
            enemy5.exists = False
        Case 5
            enemy1.exists = True
            enemy2.exists = True
            enemy3.exists = True
            enemy4.exists = True
            enemy5.exists = True
    End Select
   
    'this will have to be modified as it is just for combat alpha testing
    'in the way it currently is, it only supports pirate ship load
    If enemy1.exists Then
        If Storage.level > 10 Then
            dice = Int((Rnd * 6) + 6)
            enemy1.shipModel = Storage.shipdb(dice, 0)
        Else
            dice = Int((Rnd * 3) + 6)
            enemy1.shipModel = Storage.shipdb(dice, 0)
        End If
    Else
        enemy1.shipModel = Storage.shipdb(0, 0)
        img_enemy1.Visible = False
    End If
    img_enemy1.Picture = LoadPicture(App.Path & Storage.shipdb(dice, 2))
       
    If enemy2.exists Then
        If Storage.level > 10 Then
            dice = Int((Rnd * 6) + 6)
            enemy2.shipModel = Storage.shipdb(dice, 0)
        Else
            dice = Int((Rnd * 3) + 6)
            enemy2.shipModel = Storage.shipdb(dice, 0)
        End If
    Else
        enemy2.shipModel = Storage.shipdb(0, 0)
        img_enemy2.Visible = False
    End If
    img_enemy2.Picture = LoadPicture(App.Path & Storage.shipdb(dice, 2))
   
    If enemy3.exists Then
        dice = Int((Rnd * 3) + 6)
        enemy3.shipModel = Storage.shipdb(dice, 0)
    Else
        enemy3.shipModel = Storage.shipdb(0, 0)
        img_enemy3.Visible = False
    End If
    img_enemy3.Picture = LoadPicture(App.Path & Storage.shipdb(dice, 2))
   
    If enemy4.exists Then
        dice = Int((Rnd * 3) + 6)
        enemy4.shipModel = Storage.shipdb(dice, 0)
    Else
        enemy4.shipModel = Storage.shipdb(0, 0)
        img_enemy4.Visible = False
    End If
    img_enemy4.Picture = LoadPicture(App.Path & Storage.shipdb(dice, 2))
   
    If enemy5.exists Then
        dice = Int((Rnd * 3) + 6)
        enemy5.shipModel = Storage.shipdb(dice, 0)
    Else
        enemy5.shipModel = Storage.shipdb(0, 0)
        img_enemy5.Visible = False
    End If
    img_enemy5.Picture = LoadPicture(App.Path & Storage.shipdb(dice, 2))
   
End Sub


El problema es que me da un error cuando intento ejecutarlo:
CitarEl procedimiento externo no es válido.
Marcándome la palabra Timer de la linea:
Randomize Timer

Se puede usar esta función en VB?
Si es así, cómo puedo hacerlo?

Muchas gracias por adelantado.
#1243
Windows / Re: Error iexplore.exe
30 Octubre 2011, 14:41 PM
Si, yo creo que se refiere a que reinstales el navegador.
Qué versión de Internet Explorer estás usando?

Hay muchos users que todavía usan la 6, no es que esté mal, pero actualizar a veces te quita problemas de encima.
http://windows.microsoft.com/es-ES/internet-explorer/downloads/ie-9/worldwide-languages

Si nada te funciona, siempre podrías probar con algún otro navegador.

Intenta reinstalar primero y dinos si te ha funcionado o no.

Un saludo.
#1244
Creo que no lo has entendido del todo, lo que se te ha pedido, a parte de saber qué es lo que haces, es un código algo más completo.

- Con qué trabajas en el fichero? Cadenas? Estructuras?
Yo por ejemplo, creo que necesito ver lo que viene a ser la cabecera del programa, (donde declaras las variables, estructuras y sus tipos), para saber exactamente que es lo que intentas manejar en el archivo.
#1245
Cita de: raul338 en 28 Octubre 2011, 13:11 PMMientras puedas ver el codigo, guardalo en otro archivo externo del proyecto (un txt por ej) o en un proyecto nuevo (copy &paste) pones el diseño :P

Ok, intentaré hacer los backup de esta forma, la verdad es que no veo cómo podría fallar así. Jeje, gracias por la idea.

Cita de: 79137913 en 28 Octubre 2011, 13:19 PMHacelo mas facil, entra al proyecto y pone "guardar como" y guardate todos los forms y el proyecto en otra ubicacion.

Eso es algo que ya probé, e interesantemente, no funciona, tiene el mismo efecto que cuando copio los archivos visibles.
CitarMe dió por intentar hacer un backup de lo que ya tengo, resulta que los archivos se copian, pero si abro el proyecto del backup, los nuevos Forms y el Módulo no aparecen en la ventana de proyectos, a diferencia del .vbp que tengo en el PC, que si tiene dichos Frames y el Módulo.
#1246
En serio, necesito ayuda. La cosa sigue progresando y no puedo hacer back-ups!
No quiero arriesgarme a perderlo todo por no poder hacer un back-up.
He invertido ya unas cuantas horas en esto, y todavía tengo para otras tantas.

Me puede echar alguien una mano?
#1247
pic_ship.Picture = LoadPicture(App.Path & "\Ships\Scout Mk I.gif")
Ha funcionado perfectamente, no como antes que me cargaba sólo la primera.

Muchísimas gracias! Llevaba atascado con esto un par de días ya.
#1248
Hola, me he estado informando de cómo cargar una nueva imagen en un picturebox... ya encontré que el comando sería el siguiente:

picturebox1.picture = LoadPicture ("ruta del archivo")

Mi problema esta vez es que no consigo que el VB me reconozca la ruta como válida.

La ruta absoluta del archivo no funciona, por ejemplo:

pic_ship.picture = LoadPicture ("C:\Program Files\SpaceRPG\Ships\scout mk I.gif")

Me da el siguiente error:

CitarError '76' en tiempo de ejecución:
No se ha encontrado la ruta: 'C:\Program Files\SpaceRPG\Ships\scout mk I.gif'

Qué es lo que estoy haciendo mal esta vez?
#1249
Type=Exe
Form=Frm_Main.frm
Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#..\..\..\..\..\Windows\system32\stdole2.tlb#OLE Automation
Form=Frm_About.frm
Reference=*\G{00025E01-0000-0000-C000-000000000046}#5.0#0#..\..\..\..\..\Program Files\Common Files\Microsoft Shared\DAO\dao360.dll#Microsoft DAO 3.6 Object Library
IconForm="Frm_Main"
Startup="Frm_Main"
Command32=""
Name="Proyecto1"
HelpContextID="0"
CompatibleMode="0"
MajorVer=1
MinorVer=0
RevisionVer=0
AutoIncrementVer=0
ServerSupportFiles=0
CompilationType=0
OptimizationType=0
FavorPentiumPro(tm)=0
CodeViewDebugInfo=0
NoAliasing=0
BoundsCheck=0
OverflowCheck=0
FlPointCheck=0
FDIVCheck=0
UnroundedFP=0
StartMode=0
Unattended=0
Retained=0
ThreadPerObject=0
MaxNumberOfThreads=1


Form=Frm_Main.frm
Form=Frm_About.frm


Estoy completamente seguro de que ignoro algún conocimiento importante sobre esto...
¿Es realmente necesario que todos los Forms sean visibles desde el sistema de archivos o en este ".ini"?

Interesante... aquí también son "invisibles".
Pero resulta que cuando abro el proyecto sí que están ahí.

El Form que me falta se llama Frm_System.frm y no lo veo reflejado aquí.
Y aparentemente, no me sale ningún class. El que me falta se llama Storage.bas

EDIT: Me dió por intentar hacer un backup de lo que ya tengo, resulta que los archivos se copian, pero si abro el proyecto del backup, los nuevos Forms y el Módulo no aparecen en la ventana de proyectos, a diferencia del .vbp que tengo en el PC, que si tiene dichos Frames y el Módulo.

Seguí trabajando en ello... al parecer, cuando guardo, se guarda sobre los archivos visibles, así que el problema está semi-solucionado. La cosa funciona, pero los back-up no lo hacen.
#1250
Citarpor frame te referis a Formularios?

Si, me refiero a los formularios, los cuales, al guardarse deberían dejar dos archivos con las siguientes extensiones:
*.frm
*.frx


También me falta un módulo, en este caso sería un archivo con la siguiente extensión:
*.bas

Creo que los he recuperado copiando los archivos a través de cmd...
Tras arrastrar los archivos al directorio, están ahí, pero no me salió ningún mensaje de aviso por sobreescritura..,

Los problemas ahora son:
- No sé cómo ha ocurrido esto, así que estoy seguro de que va a seguir pasando.
- No sé si los archivos "invisibles" siguen ahí o no.
- No tengo ni idea de que es lo que estoy abriendo ahora al hacer doble click al archivo .vbp, si los ocultos, los copiados o cualquier otra cosa que contiene lo mismo.

¿Me echáis una mano?

CitarIgual reformatie y ya no me pasa (todavia) Uso windows7 ultimate
No voy a formatear cuando no estoy seguro de si he recuperado estos archivos realmente o no.