Vircon JAM

r2d2rigo

#117 no, no tiene nada que ver 🌚

Si lo logro correr sin poner la CPU al 100% mando un GIF.

1 1 respuesta
Jastro

#121 que andaras haciendo para que pida el 100% de la CPU, miedo me da xD

1 respuesta
thenanox

creo que se hablo en el thread de vircon, pero cual es la velocidad de CPU "real" que tiene vircon en procesadores de hoy en dia? mas o menos @carra

1 respuesta
r2d2rigo

#122 he tenido hasta que implementar las partes criticas en ASM. Ya lo veras cuando lo tenga subido a Github :p

#123 creo recordar que en algun sitio de la documentacion decia que 9 MHz.

1 1 respuesta
carra

#124 Doy fe de que está usando assembler, dadme por sorprendido 😲

Y si, la CPU va a 9MHz o sea 150.000 instrucciones por frame. Pero en cuanto a equivalencia con otras CPUs ni idea. Creo que debería ser más potente que la MIPS de la PS1 pero no sé cómo determinar eso

1
Ridote

#116 mucha pista has dado, yo ya sé qué estás haciendo. A ver si acierto:

spoiler
1 respuesta
carra

#126 Vamos lo que ya dijimos en la taberna. Era fácil 🤣

1 respuesta
Ridote

#127 si es que van a lo fácil. Yo este viaje no me he apuntado porque ando liadísimo, pero para la próxima igual me uno a hacer algo aunque sea sencillito.

1 respuesta
carra

#128 Genial 😁. No todo el mundo tiene que hacer un MMO, cada uno en la medida de lo que pueda

1 respuesta
Ridote

#129 la próxima jam si dais 10 días o más y me pilla medio libre igual intento hacer un minipokemon, con cuatro o cinco pokemon y una hierba jaja

1 2 respuestas
carra

#130 Pues nada aún nos queda de la primera pero iremos pensando ya en la segunda 😅

thenanox

#130 420

1 respuesta
carra

#132 Ya, bastante tenemos con acabar esta de momento

carra

Ayer hice el ending de mi juego. He puesto una sorpresita para los que os lo paséis 😉

1
Jastro

bfff, ahora comprendo como se sentia @AikonCWD

He estado dos horas, para conseguir dibujar el "player" le aplico rotacion y en vez de aplicarlo y limpiar pantalla, se dibuja otro "player" pero este con la rotación xDDDD

Totalmente inutil, mañana le dare otro try, hoy no doy pa mas

1 2 respuestas
AikonCWD

#135 Yo todavía no sé llamar a una función pasando un argumento. He mirado un par de ejemplos pero no funciona xd

1 1 respuesta
carra

#135 La pantalla de Vircon es persistente. Lo normal es borrar la pantalla al inicio de cada frame (o dibujar un fondo). Pero paso a paso, yo os voy ayudando.

#136 ¿Cómo la estás llamando?

1 respuesta
AikonCWD

#137 Estoy mirando esto pero no me termina de salir https://conclase.net/c/curso/cap15

me lío mucho con los puntos y todo eso

1 respuesta
carra

#138 Igual lo que te viene en esa página no es lo mejor, eso es C++ no C! Y ahí veo alguna cosa que no se podrían hacer en mi compilador, como lo de dejar una función definida a medias. Intenta esto:

#include "video.h"

int funcion(int n, int m)
 {
   n = n + 2;
   m = m - 5;
   return n+m;
}

void main()
{
   int a, b;
   a = 10;
   b = 20;

   print_at( 20, 20, funcion(a,b) );
}
carra

Bueno sería casi así pero no podríamos hacer un print directamente de ese resultado, porque es un número y no un string. Pero no te quería complicar el ejemplo

AikonCWD

vale, voy a probar. Entonces no uso punteros?

1 respuesta
carra

#141 No los necesitas. Solo te harían falta si la función necesita modificar variables de fuera. Es decir, si por ejemplo la linea n = n+2 quieres que sea un incremento que se ha quedado hecho en la variable a de main, entonces sí tendría que ser un puntero. Pero eso no es muy común.

Y si lo necesitas también puedes usar variables globales para eso y no usar ningún puntero. Eso es común por ejemplo para guardar el marcador de puntos y luego otras funciones acceden a él y lo cambian pero sin pasárselo como parámetro. Simplemente como una variable normal.

carra

He escrito un ejemplo real para que te aclares mejor:

#include "video.h"
#include "string.h"

// variable global
int puntos = 0;

// definimos nuestras funciones
void sumar_puntos( int aumento )
{
   puntos += aumento;
}

void mostrar_puntos( int x, int y )
{
    // convertimos el numero a string
    int[ 10 ] StringPuntos;
    itoa( puntos, StringPuntos, 10 );
    // lo mostramos en pantalla
    print_at( x, y, StringPuntos );
}

// la funcion main es nuestro programa
void main()
{
   sumar_puntos( 1000 );
   sumar_puntos( 200 );
   mostrar_puntos( 320, 180 );
}
1 1 respuesta
B

“cualquier variable global es siempre culpable hasta que se demuestre lo contrario”

2
Jastro

#143 al final le meti el bg y listo, mañana le dare mas caña a eso, pero buah, que poco acostumbrado estoy a programar asi xD

Haces un cambio en el codigo
Compilas
Falla
Lo arreglas
Compilas
Compila correctamente
Carga el cartucho
Nada funciona

Repite paso n 1

1 respuesta
carra

#145 En consola, es lo que pasa. De ahí el intentar tenerlo todo lo más automatizado posible para acelerar el ciclo. Con el script make, y si lo integras con el IDE se puede hacer más bien rápido.

Jastro

Existe algo que te permita calcular hacia donde debe ir el pj, dependiendo de la rotacion? o eso debo hacerlo a mano si o si?

2 respuestas
carra

#147 La rotación solo es un parámetro gráfico. La posición donde lo dibujas se la dices tú. Normalmente si quieres que avance en esa dirección guardarás un vector con la posición y un ángulo y le harás avanzar calculando con el seno y coseno

1
Jastro

aparte de rodrigo, carra y yo, hay alguien mas haciendo cosas?

2 respuestas
carra

#149 Aikon y thenanox