Karoshi MSX Community
05 de Julio de 2021, 08:22:01 pm *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias:
 
   Inicio   Ayuda Buscar Ingresar Registrarse  
Páginas: 1 2 3 [4] 5
  Imprimir  
Autor Tema: DESCUBRIENDO EL PONG  (Leído 23666 veces)
0 Usuarios y 1 Visitante están viendo este tema.
cybernoid
Karoshi Maniac
****
Mensajes: 368



WWW
« Respuesta #45 : 16 de Octubre de 2007, 03:37:16 pm »

hola,

una forma sencilla de saber si el numero es positivo o negativo es asi

if x>0 then positivo else negativo

lo de screen 1 y las colisiones mejor se lo dejo a otro, a mi se me ocurre una cosa(vpeek), pero me parece que no seria la mejor solucion para un juego tipo pong

En línea
SapphiRe_MSX
Visitante
« Respuesta #46 : 16 de Octubre de 2007, 03:50:41 pm »

ademas segun Jlturstan, no se suelen usar el comando line y todo esto, y mi campo esta hecho asi, ademas también la programación de los rebotes del campo, que esta ejecutada con point... asi que,,,

¿como se programaria entonces, si hago las paredes con sprites en vez de con line?

Con caracteres redefinidos, no con sprites.

Tendrías que mirar cuál es el carácter que hay bajo la pelota y obrar en consecuencia. Es más rápido que una instrucción point gracias a la estructura de la memoria de vídeo de los MSX. Pero olvídalo de momento... termina el pong tal y como lo tienes Cheesy
En línea
SapphiRe_MSX
Visitante
« Respuesta #47 : 16 de Octubre de 2007, 03:51:21 pm »

lo de screen 1 y las colisiones mejor se lo dejo a otro, a mi se me ocurre una cosa (vpeek), pero me parece que no seria la mejor solucion para un juego tipo pong

Es, de hecho, la solución Cheesy
En línea
cybernoid
Karoshi Maniac
****
Mensajes: 368



WWW
« Respuesta #48 : 16 de Octubre de 2007, 03:58:33 pm »

lo de screen 1 y las colisiones mejor se lo dejo a otro, a mi se me ocurre una cosa (vpeek), pero me parece que no seria la mejor solucion para un juego tipo pong

Es, de hecho, la solución Cheesy


abs, yo pensaba que habria una solucion mas Pixel a pixel, ya que trabajando con vpeek solo podra comprobar de 8 en 8 pixels
¿nop?
En línea
msx dummie
Karoshi Lover
***
Mensajes: 162



Email
« Respuesta #49 : 16 de Octubre de 2007, 04:11:28 pm »

bueno, teniendo en cuenta que estoy en screen 2, mantendre este modo de pantalla de momento, a ver si lo puedo acabar aqui...

porque con los vpeek y vpoke ando bastante perdido todavia.
En línea
jltursan
Karoshi Forum's Guru
*******
Mensajes: 1516


¿Que es lo que has aprendido hoy?


WWW Email
« Respuesta #50 : 16 de Octubre de 2007, 04:27:19 pm »

Si, si, haces bien. En screen 2 de momento es más fácil dibujar el campo con lines y los objetos móviles con sprites. ¿Tienes marcador?, para eso el draw te podría venir bien... Smiley

Tal como lo tienes las colisiones las tienes que controlar comparando coordenadas o utilizando las colisiones de sprites (aunque creo que no conseguiste hacerlo funcionar así, ¿verdad?).
En línea

Doom dee doom dee doom
jltursan
Karoshi Forum's Guru
*******
Mensajes: 1516


¿Que es lo que has aprendido hoy?


WWW Email
« Respuesta #51 : 16 de Octubre de 2007, 04:41:40 pm »

Citar
abs, yo pensaba que habria una solucion mas Pixel a pixel, ya que trabajando con vpeek solo podra comprobar de 8 en 8 pixels

Para chequear las paredes puede venir muy bien en caso de usar screen 1. Con un solo vpeek testeas los muros y así te ahorras 2 comparaciones sobre la Y, de todas formas no se que sería más rapido, hay que tener en cuenta que el vpeek necesitaría calcular la posición de memoria sobre la que se encuentra la bola. Todo es cuestión de probar a ver que es más rápido.

Citar
proponedme un reto!! pero no os paseis

En BASIC quedan fenomenal los puzzles, las aventuras conversacionales, los juegos de estrategia (simple), juegos de mesa y pequeños arcades, como el pong, en los que no se mueven muchos objetos. La cuestión es hacerlo lo mejor que uno pueda, no conformarse con cualquier cosa Wink
En línea

Doom dee doom dee doom
msx dummie
Karoshi Lover
***
Mensajes: 162



Email
« Respuesta #52 : 16 de Octubre de 2007, 04:55:04 pm »

Claro, claro JL yo quiero hacer un pong, que sea algo mas que eso, de hecho tengo pensadas algunas ideas que creo que podrian estar muy bien, pero tengo que ir poco a poco...
quien sabe... a lo mejor me puedo presentar al msxdev 2070 Wink
estoy dandole mucha caña, pero fui un renegado por asi decirlo en el colegio y el instituto y las mates sieeeemmpre me quedaban, asi que me cuesta, pero dia a dia avanzo, ya sabes lo que dice uno de los grandes de por aqui:
 
¿que es lo que has aprendido hoy? Smiley (me encanta)
En línea
msx dummie
Karoshi Lover
***
Mensajes: 162



Email
« Respuesta #53 : 20 de Octubre de 2007, 08:56:41 pm »

saludos de nuevo chicos!
a ver, necesito de nuevo que alguien me salve porque me va a estallar la cabeza...

he estado probando aplicando las formulas que me daba Sapphire y he montado un caos de escandalo, no me funciona nada bien, tengo varias dudas:
lo que sucede es que la bola se sale del campo, como si no respetase el point, tampoco me respeta la programación de los rebotes en la pala, ni aumenta la velocidad ni cambia el angulo de nada... Cry

no entiendo lo que pasa, tenemos a M como modulo vector de velocidad, pero que valor inicial tiene?
y A?? tampoco tiene ningun valor inicial?

ademas no comprendo esta formula:

a=pi-a-(2*pi*(a>pi))

como se despeja (a>pi)Huh quiero decir que que significa esta expresión???

también he probado del otro modo, con la variable contador c, haciendo lo de:

c=c+1:if c>100 then c=0...

y todo esto que me comentabais como primera opcion, y de este modo tampoco me funciona, llega un momento en el que la bola va mas lenta, deja de rebotar y cambia el angulo!!!!

no se, debo de ser un tarugo, pero no entiendo nada, os agradeceria mucho que recapitulasemos a ver donde lo estoy haciendo mal...
gracias de nuevo gente, un saludo!


En línea
pitpan
Karoshi Forum's Guru
*******
Mensajes: 1812


« Respuesta #54 : 22 de Octubre de 2007, 07:37:00 am »

Es muy posible que no te funcione el POINT porque te suceda algo así:

- Momento 1: X=99
- Momento 2: si la velocidad es 1.6, entonces X=X+1.6=100.6

Por lo tanto, al hacer un POINT con la X o utilizarla en un IF, X<>100 porque ha pasado directamente de 99 a 101 debido al efecto de usar velocidades no enteras. No sé si te ha quedado claro, pero es un error bastante habitual cuando algo deja de moverse a velocidad 1.
En línea
msx dummie
Karoshi Lover
***
Mensajes: 162



Email
« Respuesta #55 : 22 de Octubre de 2007, 10:48:07 am »

Gracias Robsy!
pero yo solo estoy utilizando enteros...(que yo sepa)
x=x+vx   cuando vx es siempre igual a 5... entonces...
no se, lo de point en un momento dado, podria hurgarlo y ver, pero me interesaba mucho lo de la velocidad y los angulos, y eso es lo que no funciona ni de coña.
un saludo!
En línea
cybernoid
Karoshi Maniac
****
Mensajes: 368



WWW
« Respuesta #56 : 22 de Octubre de 2007, 11:10:50 am »

Gracias Robsy!
pero yo solo estoy utilizando enteros...(que yo sepa)
x=x+vx   cuando vx es siempre igual a 5... entonces...
no se, lo de point en un momento dado, podria hurgarlo y ver, pero me interesaba mucho lo de la velocidad y los angulos, y eso es lo que no funciona ni de coña.
un saludo!

sin ver el código fuente creo que poco se puede hacer por el tema de la velocidad y los ángulos...

veo que al final te has decantado por el sistema "complejo" es una buena elección, pero te costara mas sacarlo.
En línea
msx dummie
Karoshi Lover
***
Mensajes: 162



Email
« Respuesta #57 : 22 de Octubre de 2007, 11:13:09 am »

bueno, basicamente me he decantado por cualquiera que funcione, pero es que ninguno lo hace...
probe a utilizar una variable contador y que cuando llegase a cierto punto aumentase la velocidad, pero como ya escribí no me funciona tampoco.
En línea
cybernoid
Karoshi Maniac
****
Mensajes: 368



WWW
« Respuesta #58 : 22 de Octubre de 2007, 11:56:35 am »

bueno, basicamente me he decantado por cualquiera que funcione, pero es que ninguno lo hace...
probe a utilizar una variable contador y que cuando llegase a cierto punto aumentase la velocidad, pero como ya escribí no me funciona tampoco.

pues lo de la variable contador te tiene de chutar por narices!

INICIALIZO VARIABLES (C=0)
EMPIEZA EL JUEGO
MUEVO PELOTA
ACTUALIZO CONTADOR (C=C+1)
SI C>10 ENTONCES  VX=VX+1:VY=VY+1:C=0
GOTO MUEVO PELOTA

tienes aun el codigo donde hiciste lo del contador?

postealo y te hecho un cable.

En línea
cybernoid
Karoshi Maniac
****
Mensajes: 368



WWW
« Respuesta #59 : 22 de Octubre de 2007, 12:01:18 pm »

Hola otra vez,

mira, te he actualizado el código de programa "rebotes" añadiendole el tema del contador (varible C)

Código:
5 REM REBOTES
10 SCREEN 2
20 LINE (0,0)-(208,178),1,B
30 X=100:Y=100:C=0
40 VX=1:VY=-1
50 FOR N=BASE(14) TO BASE(14)+7:READ A:VPOKE N,A:NEXT N
60 PUT SPRITE 0,(X,Y),15,0
70 X=X+VX
80 Y=Y+VY
81 C=C+1
82 IF C>100 THEN C=0: VX=VX+1:VY=VY+1
85 REM CONTROL DE REBOTES
90 IF X<1 OR X>200 THEN VX=-VX
100 IF Y<1 OR Y>170 THEN VY=-VY
110 GOTO 60
120 DATA &H18,&H24,&H42,&H81,&H81,&H42,&H24,&H18


no lo he probado por que estoy en el curro, pero supongo que funcionara sin problemas, los cambios son pequeños (minusculos)
En línea
Páginas: 1 2 3 [4] 5
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.21 | SMF © 2013, Simple Machines XHTML 1.0 válido! CSS válido!