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.

Menú Mostrar Mensajes

Mensajes - dixon

#1
Hola saludos a todos. :D


En esto estoy trabajando actualmente y estoy contento con los resultados.

Esta es la práctica del game pad html5 para móviles (probar desde un móvil), este presenta fallas con el multi touch.
http://estudiosistemas.infinityfreeapp.com/Dixon/practicas/gamepad/


Este es el Multi_touch html5 para móviles (probar desde un móvil)
http://estudiosistemas.infinityfreeapp.com/Dixon/practicas/Multi_touch_movil/index_0.html

Ahora tengo que unir ambos sistemas para mejorar el joystick tactil.

Me conviene hacer un tutorial en youtube para explicar cómo se hace esto. En youtube y en varias webs hay tutoriales pero me parecen muy dificultosos, por eso quiero crear uno que explique de manera fácil como crear este tipo de joystick.

Luego de unir ambos sistemas tengo que aprender a "emular un gamepad" y si lo logro, la implementación será increible ya que los programadores de juegos solo tendrán que copiar y pegar el codigo para que sus juegos html5 adquieran el gamepad virtual y puedan jugarse efectivamente en cualquier dispositivo, movil o pc.

 XD

#2
Hola, saludos a todos, espero que tengan un buen d�a.

El joystick táctil o gamepad táctil html5 sigue en proceso, diariamente estoy programando sobre este sistema, en el proceso he aprendido muchas cosas sobre javascript y la compatibilidad con móviles antiguos. El reto es crear un gamepad táctil que funcione tanto en dispositivos viejos como en los nuevos.
Tengo un reto enorme y no es muy fácil de explicar por tanto daré varias explicaciones de lo que quiero conseguir:
Primero voy hablar de las palabras que usaré:
A.   GamePad fÃ�sico: Son los controles de video juegos que compramos y conectamos al pc para jugar, normalmente son de puerto USB.
B.   GamePad táctil: Es la herramienta virtual o el conjunto de botones digitales que sirven para jugar, los cuales aparecen sobre el juego y se usan en pantallas táctiles.
C.   Señal: Es la señal que envÃ�a un gamepad fÃ�sico a game maker para que el jugador pueda interactuar con el juego.
Lo que necesito lograr (explicado de varias formas):
1.   Simular que un joystick ha sido conectado, sin conectar uno real.
2.   Emplear javascript para que simule las señales del gamepad.
3.   Emplear javascript para que el gamepad táctil envie señales como si fuera game pad fÃ�sico.
4.   Hacerle creer a game maker que un joystick o gamepad ha sido conectado.
Si logro esto será muy fácil implementar el joystick, cuestión de copiar y pegar, funcionar�a en cualquier juego html5 y de cualquier motor de video juegos. Los programadores solo tendrán que crear juegos donde se interactúe con gamepad y al finalizar podr�an integrarle el gamepad táctil tan solo copiando y pegando el código en el archivo index.html.
Si no puedo conseguir eso, tengo otras alternativas menos prácticas, es decir tendr�a que simular la presión de teclado mediante el gamepad táctil e interactuar con game maker de ese modo creando un script especial que interprete las señales. No es muy agradable pero es lo que me aquedar�a.

bye.
#3
Hola, gusto en saludarlos.

Solo quería mostrarles el joystick táctil que estoy diseñando.
Joystick_html5

Funciona en pc y móviles. este es el repositorio que contiene todo el código:
https://github.com/ReyesDavila/joystick_html5

Ahora bien, ¿qué metodos se pudiesen aplicar para que game maker reciba el estado de un joystick virtual creado con javascript?

Realmente se puede implementar este tipo de joystick virtual en juegos html5 de game maker, pero el método que conozco es un poco fastidioso y no muy amigable, por eso me estoy ideando otro método más sencillo para que todos podamos implementarlo con solo copiar y pegar.

Requiero un gamepad(control de juego) para poder crear un script completo que controle el teclado, pantallas táctiles y los posibles gamepad. Es decir que el diseñador del juego solo tenga que copiar el código para que todas las interfaces mencionadas estén disponibles para los posibles jugadores.


bye
0923









#4
General / Re:Scripts de otros lenguajes.
Noviembre 23, 2022, 02:24:00 AM
Hola buenas noches.

Aqui voy a dejar un codigo javaScript muy basico pero que considero importante para crear juegos y aplicasiones Web. En mi caso lo voy a usar de base para crear un joystick tipo palanca para un juego html5.

//Para obtener la posicion X y Y de un elemento html
//esto devuelve un objeto con posiciones X y Y
//Ejemplo:
//var objeto = posicion(id_elemento)
//var objeto_x = objeto.x
//var objeto_y = objeto.y
function posicion(id_elemento)
{
elem = document.getElementById(id_elemento); 
return elem.getBoundingClientRect();
}

//Para obtener la posicion del mouse en la página.
//las variables mouse_x y mouse_y almacenarán la posición del mouse.
mouse_x = 0
mouse_y = 0
document.addEventListener("mousemove", mouseMoveHandler, false);
function mouseMoveHandler(e)
{
mouse_x = e.clientX
mouse_y = e.clientY
}

//Para detectar que se ha cambiado el alto y/o el ancho de la ventana
window.addEventListener("resize",ajustar_todo);
function ajustar_todo(){
//aqu� va el código que se empleará para ajustar todo
alert("ajustando")
}

//Para la ejecucion constante de código o para crear un ciclo.
setInterval(function x(){ejecucionConstante()}, 1000/30);
function ejecucionConstante(){
//aqu� va el código que necesita ser ejecutado frecuentemente.
}
#5
Juegos completos / Re:Euforia
Noviembre 22, 2022, 11:59:15 AM
#6
Juegos completos / Euforia
Noviembre 22, 2022, 04:50:43 AM
#7
General / Re:Crear un motor.
Noviembre 19, 2022, 01:30:14 AM


Hoy quiero reconocer que no estoy listo para crear el mini motor de juegos pero de igual manera voy a seguir adelante porque en estos pocos d�as que llevo con ese proyecto he logrado detectar algunas fallas que tengo como programador y voy a nombrarlas:

1.   Me falta estudio: no he cursado carrera informática, los conocimientos lo he adquirido empÃ�ricamente y aunque puedo enfrentar códigos desconocidos, me falta estudiar más teorÃ�as para quizás buscar soluciones de manera más eficientes.
2.   No sé pseudocódigo: desde mi vaga experiencia en pseudocódigo este puede servir para diseñar los sistemas antes de iniciar la programación, esto facilitarÃ�a el proceso de creación.
3.   No sé diagrama de flujo: El diagrama a mi parecer permite la comprensión de procesos, mediante el uso de gráficos, esto me pudiese servir para poder entender códigos difÃ�ciles.
4.   Falta de disciplina: Me acuesto tarde y me levanto sin energÃ�a, eso me quita la motivación. Reconozco que cuando me acuesto temprano recupero la energÃ�a y me levanto con mucho ánimo y alegrÃ�a. Tampoco tengo disciplina de estudio ni horarios para programar. Si aumentase mi disciplina entonces trabajarÃ�a más eficiente y alcanzarÃ�a muchas metas, no solo de programación, también tengo metas en diseño gráfico y otras muchas más, pero si no me aplico no llegaré lejos.

Una de las cosas que quisiera retomar es la creación juegos de preguntas y respuestas los cuales me pudiesen servir para agilizar la comprensión de algunos temas.
En cuanto al tema del motor de juegos, hoy no tengo código nuevo que compartir porque estuve haciendo otras actividades. Me tocó platicar con un amigo emprendedor y me transmitió su motivación, ahora también reconozco que para estar motivado necesito estar alegre y vivir buscando siempre la paz, de esa manera se me har�a mucho más fácil alcanzar metas y ayudar a otras personas.
Ahora que lo pienso, los video juegos sirven para transmitir alegr�a y felicidad por lo tanto sirve para motivar a las personas.

Bye.
#8
General / Re:Crear un motor.
Noviembre 18, 2022, 04:19:52 AM
Hola, buenas noches.

Hoy me dediqué a buscar la solución del draw_text_ext y aunque he obtenido un resultado aceptable, voy a tratar de crear un diagrama del funcionamiento para poder comprender mejor ese sistema.

Realmente invertí todo el día en este simple script y no quedó preciso. Eso me impulsa a buscar estrategias para aumentar precisión, entre ellas crear diagramas de flujo y el pseudocódigo.


Nueva versión del draw_text_ext para Python – pygame.

def draw_text_ext(x, y, string, w):
    global count
    font_sys = pygame.font.SysFont(font_name, font_size)
    if w < font_size:
        w = font_size
    string_x = string_replace_all(string, chr(pygame.K_TAB), chr(pygame.K_SPACE)*8)
    index_x = 0
    count_x = 0
    char_num = len(string_x)
    while char_num > 0:
        copy_x2 = string_copy(string_x, index_x+count_x, 1)
        while copy_x2 == chr(pygame.K_RETURN):
            index_x += count_x+1
            count_x = 0
            copy_x2 = string_copy(string_x, index_x+count_x, 1)

        char_num -= 1
        count_x += 1
        copy_x = string_copy(string_x, index_x, count_x)
        area = font_sys.render(copy_x, True, font_color)
        copy_x2 = string_copy(string_x, index_x+count_x, 1)
        area_char = font_sys.render(copy_x2, True, font_color)
        if interface.keyboard_check_pressed("any"):
            print(copy_x2)
        if area.get_width() > w-area_char.get_width():
            count_previo = count_x
            sumar_x = 0
            while string_x[index_x+count_x-1] != " " and count_x > 0:
                sumar_x += 1
                count_x -= 1
            if count_x == 0:
                count_x = count_previo
                sumar_x += 1

            string_x = string_insert(chr(pygame.K_RETURN), string_x, index_x+count_x)
            index_x += count_x+1
            count_x = sumar_x
            char_num += 1

    list_out = string_x.split(chr(pygame.K_RETURN))
    draw_rectangle(x, y, w, len(list_out)*font_size)
    draw_text(x, y, list_out)

Considero que este script está 75% preciso.

Este es el estado de las metas del draw_text_super.




Retos personales:
Ahora me tengo que enfrentar nuevos retos personales para poder acelerar la producción de scripts.




Bueno, en cuanto a mejorar como programador quisiera agragar que tengo que aumentar mi disciplina y obligarme a dormir temprano.



v: 194
#9
General / Re:Crear un motor.
Noviembre 17, 2022, 02:04:00 PM
Hola, saludos a todos en este nuevo día.

Mantenerme motivado es todo un reto, tengo que imaginar que todo marcha de maravilla, XD.

Ahora bien continuando con el draw_text_ext estos son los retos que tengo hoy para poder concretar el script.


#10
General / Re:Crear un motor.
Noviembre 17, 2022, 02:44:59 AM
Hola mundo.

Son las 9:32pm y ya terminé lo que ser�a un draw_text_ext para python - pygame.





def draw_text_ext(x, y, string, w):
    font_sys = pygame.font.SysFont(font_name, font_size)
    area = font_sys.render(string, True, font_color)
    linea_list = []
    if area.get_width() > w:
        while area.get_width() > w:
            count_x = 1
            copy_x = string_copy(string, 0, count_x)
            area_x2 = font_sys.render(copy_x, True, font_color)
            while area_x2.get_width() < w:
                count_x += 1
                count_previo = count_x
                count_x2 = count_x
                copy_x = string_copy(string, 0, count_x)
                area_x2 = font_sys.render(copy_x, True, font_color)
            # La división correcta.
            c1 = string_copy(string, count_x, 1) != " "
            c2 = len(string) != count_x
            if c1 and c2:
                while string_copy(string, count_x, 1) != " " and count_x > 0:
                    count_x -= 1
                count_x += 1
                if count_x == 1:
                    count_x = count_previo
            else:
                count_x += 1

            index = 0
            count = count_x
            linea_list.append(string_copy(string, index, count))
            index = count_x
            count = len(string)-index
            string = string_copy(string, index, count)
            area = font_sys.render(string, True, font_color)
        linea_list.append(string)
    else:
        linea_list = [string]

    draw_text(x, y, linea_list)

Este codigo trabajará en conjunto con el paquete de script del post: "scripts de otros lenguajes".

Pero esto es solo el comienzo del problema del código, ahora es necesario crear ajustar este draw_tex_ext para que permita saltos de l�nea mediante la tecla Enter, la cual proporciona un carácter de código 13.


Me tardé una hora y media más o menos porque estuve cenando unas arepas con mortadela más o menos como estas.




El tiempo para programar tengo que aprovecharlo al máximo porque queda mucho camino por recorrer.



Ser�a bueno acostarme a dormir para comenzar mañana pero ya me enganché y tengo que aprovechar esta pequeña motivación. Aunque realmente necesito autocontrol para poder dormir temprano y programar mejor. No sé cómo hacen ustedes en esos casos ¿se trasnochan, amanecen o se duermen temprano?.
#11
General / Re:Crear un motor.
Noviembre 17, 2022, 12:41:21 AM
Hola buenas noches,

Aquí en Venezuela son las 7:42pm del día miércoles 16/11/2022 y me encuentro programando la solución al draw_text_ext para hallar la división correcta de las líneas que componen un cuadro de texto.


Esta es la imagen que tengo del script por los momentos.


#12
General / Re:Crear un motor.
Noviembre 16, 2022, 07:55:20 PM
Hola a todos.

Microstudio



Black_cat tiene razón, microstudio es un gran sistema para crear video juegos y quizás el mejor actualmente. Me gusta mucho la imagen principal de microstudio en donde aparece un juego parecido a “top gear snes� y realmente quiero programar uno de esa clase.

Programar un motor de video juegos “simple� o simplificado me parece bastante interesante porque me obliga a razonar e inclusive me motiva a mejorar mis hábitos de programador.

Las técnicas que se requerir�an para crear este motor “simple� son muy parecidas a las que necesitar�an los siguientes juegos:
1.   Mario maker.
2.   Juegos de construcción de ciudades.

Por tanto esta experiencia puede prepararme para en algún futuro lograr crear uno de esos.

El block de notas
Crear un simple block de notas es uno de los primeros objetivos y valla que no ha sido fácil. Ayer reprogramé el código desde cero y hoy tengo que ajustarlo un poco más.
La siguiente tabla me permite visualizar  algunos pasos que debo seguir para lograr concretar la creación de un block de notas:




Imagen: primera etapa del draw_text_ext en Python. En esta primera etapa el sistema intenta ajustar el texto a un tamaño espec�fico pero recorta las palabras de manera inadecuada.



Modo de creación:
Posiblemente exista un módulo para Python que pudiese facilitar la creación de cuadros de textos, pero programarlo con pygame me obliga a razonar y eso me combiene. Con lo poco que he aprendido he conseguido comprender algunas técnicas que podré usar para cuando me toque trabajar a fondo con archivos Json. También me he visto obligado a crear un script que me permita tener gran control sobre el teclado y el mouse, cosa que necesitaré bastante cuando comience a crear los scripts que permitirán mover los objetos con teclado y/o ratón. Ahora que me acuerdo voy a necesitar un Joystick, si alguien puede enviarme uno USB se lo agradecer�a, me conviene integrar las funciones del joystick inmediatamente.



#13
General / Re:Scripts de otros lenguajes.
Noviembre 14, 2022, 06:52:46 PM
Hola, saludos a todos. :-[

Aquí les dejo un script para python que imita algunas funciones del game maker.

import pygame
import math

"""
Notas importantes: 
1. A la pantalla la llamaremos "screen".
2. Tenemos que importar los módulos: pygame y math.
"""

#Pantalla
screen_size = [800, 600]
screen = pygame.display.set_mode(screen_size, pygame.RESIZABLE)
pygame.display.set_caption("Game editor")
clock = pygame.time.Clock()

# colores
c_aqua = [0, 255, 255]
c_black = [0, 0, 0]
c_blue = [0, 0, 255]
c_dkgray = [64, 64, 64]
c_fuchsia = [255, 0, 255]
c_gray = [128, 128, 128]
c_green = [0, 128, 0]
c_lime = [0, 255, 0]
c_ltgray = [192, 192, 192]
c_maroon = [128, 0, 0]
c_navy = [0, 0, 128]
c_olive = [128, 128, 128]
c_purple = [128, 0, 128]
c_red = [255, 0, 0]
c_silver = [192, 192, 192]
c_teal = [0, 128, 128]
c_white = [255, 255, 255]
c_yellow = [255, 255, 0]
brush_color = c_white

# inicializando las fuentes
pygame.font.init()
font_size = 32
font_name = "Sylfaen"
font_color = c_black
font_position = "left"
font = pygame.font.Font(None, font_size)

def draw_circle(x, y, r):
    pygame.draw.circle(screen, brush_color, (x, y), r, 1)

def draw_text(x, y, txt):
    global font_color
    font_sys = pygame.font.SysFont(font_name, font_size)
    area = font_sys.render(str(txt), True, font_color)
    screen.blit(area, (x, y))

def draw_text_color(x, y, txt, color):
    font_sys = pygame.font.SysFont(font_name, font_size)
    area = font_sys.render(str(txt), True, color)
    screen.blit(area, (x, y))

def draw_rectangle(x, y, w, h):
    global brush_color
    pygame.draw.rect(screen, brush_color, (x, y, w, h))

def draw_rectangle_color(rect, color):
    pygame.draw.rect(screen, color, (rect.x, rect.y, rect.w, rect.h))

def draw_set_color(color):
    brush_color = color

def execute_string(str):
    exec(str)

def floor(x):
    return math.trunc(x)

def point_distance(x1, y1, x2, y2):
    p = [x1, y1]
    q = [x2, y2]
    distancia = math.dist(p, q)
    distancia_entero = math.trunc(distancia)
    return distancia_entero

def string_count(substr, str):
    return str.count(substr)

def string_copy(str, index, count):
    return str[index:index + count]

def string_delete(str, index, count):
    return str[0:index:] + str[index + count::]

def string_insert(substr, str_x, index):
    if type(str_x) == list:
        list_prev = str_x[:index]
        list_prev.append(substr)
        list_prev += str_x[index:]
        return list_prev
    else:
        substr_x = str(substr)
        return str_x[:index] + substr_x + str_x[index:]

def string_length(str):
    return len(str)

def string_pos(substr, str):
    return str.index(substr)

#14
General / Re:Crear un motor.
Noviembre 12, 2022, 07:33:55 PM
#15
General / Re:Crear un motor.
Noviembre 12, 2022, 02:46:30 AM
Hola, saludos a todos.

Quiero ofrecer un poco de información (que puede ser tediosa) sobre los adelantos con respecto al motor.



Imagen del trabajo realizado para el proyecto "motor de video juegos". En esta parte se está intentando crear un simple "notebook", procesador de texto o block de notas que pueda trabajar a la par con el módulo pygame de python. Podemos ver que existen algunas funciones y variables del game maker: keyboard_key, mouse_x, mouse_y, keyboard_string. Se están empleando algunas funciones del game maker dentro de python.


Programando en Python:
El motor debe ser creado en JavaScript para que los usuarios puedan utilizarlo gratuitamente desde una página web, pero por motivos personales me urge dominar python y necesito invertir mi tiempo en aprenderlo, por lo tanto he decidido programarlo en python (aunque python no es tan veloz dibujando polígonos en comparación con JavaScript) para luego volverlo a programar en javaScript. Aunque es un trabajo doble; traerá beneficios para mí y para todos los usuarios.
Existe una forma de ejecutar los proyectos de python directamente en la web usando diversos entornos entre ellos Django, pero para la fecha no sé nada de eso y presento problemas con internet, además confío en que JavaScript es la mejor opción para crear aplicaciones webs inclusive mejor que typeScript (corríjanme si me equivoco).


El concepto de "Clase" en python y javaScript
En el proceso de desarrollo del motor he tenido que aprender el concepto de "clases", cosa que no era relevante en game maker, aunque realmente game maker si usa "clases".

Comparación:
Game maker:
1.    La "clase" seria el objeto que creamos.
2.    Las copias de un objeto son llamadas instancias.
Python:
1.    La clase sería un molde o un modelo para crear objetos.
2.    Los objetos son creados en base al modelo que presenta una clase, es decir que si queremos crear un objeto "carro", tenemos que crear una clase "carro" y luego crearlo llamando a la clase. Seria algo así:
class perro():
    def __init__(self,x,y):
        self.x = x
        self.y = y
    def estado(self, estado):
        self.estado = estado
        if self.estado == "ladrar":
            print("ladrando")
        if self.estado == "comer":
            print("comiendo")
        if self.estado == "correr"
            print("corriendo")

# Luego en esta parte mandamos a crear al perro en una posición.
Perro01 = perro(100,100)


Si nos fijamos bien podemos ver que algo dice "self", bueno eso es simplemente un requisito que debe tener la clase. En javascript no se usa self se usa "this". Realmente no hay que comprender mucho eso porque es solo un protocolo por decirlo de una manera.


Objetivos pendientes:
Para finalizar voy a enumerar solo algunos de los objetivos que tengo que alcanzar para concretar el motor:



Es normal que los objetivos de vallan expandiendo o aumentando.


Chau.
Powered by EzPortal
SMF spam blocked by CleanTalk