Karoshi MSX Community
05 de Julio de 2021, 08:22:05 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 ... 3 4 [5]
  Imprimir  
Autor Tema: DESCUBRIENDO EL PONG  (Leído 23666 veces)
0 Usuarios y 1 Visitante están viendo este tema.
Jos'b
Karoshi Maniac
****
Mensajes: 262


« Respuesta #60 : 23 de Octubre de 2007, 04:52:58 pm »

Tambien de quiero incluir otro listado, que espero te pueda ayudar algo.
El desplazamiento de la pelota esta basado en el modelo vectorial (módulo, argumento)

modificando V(velocidad) y A(angulo de tiro) en las líneas 280 y 300, puedes obtener diferentes rebotes. Es importante que introduzca los angulos en radianes (no en grados)

Código:
     10 '
     20 ' Otro programa de REBOTES
     30 '
     40 COLOR 2,1,1
     50 Screen 2,2
     60 '
     70 ' Definiendo valor de pi
     80 '
     90 PI=22/7
    100 '
    110 ' Definiendo sprite
    120 '
    130 FOR i=1 TO 32
    140 READ d
    150 s$=s$+CHR$(d)
    160 NEXT i
    170 sprite$(0)=s$
    180 '
    190 ' Definiendo region de rebote
    200 '
    210 LINE (0,0)-(255,191),2,b
    220 '
    230 ' valores iniciales
    240 '
    250 x=50
    260 y=50
    270 ' Velocidad inicial y
    280 v=8
    290 ' Angulo inicial (en radianes 45º=pi/4)
    300 a=pi/6
    310 '
    320 ' Bucle principal
    330 '
    340 IF INKEY$=CHR$(27) THEN END
    350 '
    360 vx=v*COS(a)
    370 vy=v*SIN(a)
    380 '
    390 x=x+vx
    400 y=y+vy
    410 '
    420 IF x<0 OR (x+16)>255 THEN a=pi-a:x=((x+16)>255)*(-239)
    430 IF y<0 OR (y+16)>191 THEN a=-a:y=((y+16)>191)*(-175)
    440 '
    460 PUT sprite 0,(x,y),2,0
    470 GOTO 340
    480 '
    490 ' Datas Sprite
    500 '
    510 DATA 15,48,64,70,128,128,144,144
    520 DATA 144,144,136,136,70,64,48,15
    530 DATA 240,12,2,2,1,1,1,1
    540 DATA 1,1,1,1,2,2,12,240

En las líneas 420 y 430, habrás observado que hay expresiones de este tipo

x=((x+16)>255)*(-239) y y=((y+16)>191)*(-175)

Simplemente se esta operando con operadores lógicos. si la expresion es cierta en MSX-BASIC da como resultado -1, de ahí que haya que multiplicar por -239, o -175,  para que el resultado sea positivo.

Estas expresiones evitan que la pelota se salga de los limites del rectangulo, pero no evitan un pequeño deslizamiento sobre los ejes debido a que solo se reajusta una sola coordenada. Para hacerlo mejor habría que modicar ambas coordenadas, lo que implicaría a su vez, más caluculos y por tanto más lentitud.

Pero como ejemplo creo que vale la pena. Espero que sirva de ayuda a tu Pong.

Un Saludo.

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



WWW
« Respuesta #61 : 24 de Octubre de 2007, 10:49:02 am »

mu majo el código, ^_^ como sigamos asi tendremos BASIC PONG OPEN SOURCE

En línea
msx dummie
Karoshi Lover
***
Mensajes: 162



Email
« Respuesta #62 : 24 de Octubre de 2007, 11:19:28 am »

Gracias Gobblin!

estoy hasta arriba de curro y no he podido mirarlo y probarlo...
espero poder hacerlo esta tarde, PONG OPEN SOURCE YA! Grin

¿no creeis que estaria bien una sección para patanes como yo, en la que destripar cosas sencillas?
lo cierto es que en la mayoria de articulos de revistas y libros de la epoca, la información es dificil de pillar, o bien se complican mucho para hacer cosas que vosotros sabeis hacer con muy poco.
creo que para "newbies" como yo estaria bién tener una especie de "tutorial" con las tecnicas y factores basicos para empezar a hacer cositas en basic...
no se, es una idea, igual os parece una gilipollez, pero yo creo que daria opción a que se uniese mas gente a este mundo tan flipante del msx, gente a quien le guste pero que en principio no tengan muchos conocimientos...
porque os aseguro que a veces cuando ojeo los temas aqui en el foro, se me queda una cara Undecided ¡¡no entiendo nada! quiero decir que teneis mucho nivel y se hace dificil saber por donde tirar al principio.
Y despues de esta chapa, me despido, espero que no os parezca una tonteria esto que comento.
GRACIAS A TODOS!
Un Saludo!
En línea
cybernoid
Karoshi Maniac
****
Mensajes: 368



WWW
« Respuesta #63 : 24 de Octubre de 2007, 02:27:02 pm »

Gracias Gobblin!

estoy hasta arriba de curro y no he podido mirarlo y probarlo...
espero poder hacerlo esta tarde, PONG OPEN SOURCE YA! Grin

¿no creeis que estaria bien una sección para patanes como yo, en la que destripar cosas sencillas?
lo cierto es que en la mayoria de articulos de revistas y libros de la epoca, la información es dificil de pillar, o bien se complican mucho para hacer cosas que vosotros sabeis hacer con muy poco.
creo que para "newbies" como yo estaria bién tener una especie de "tutorial" con las tecnicas y factores basicos para empezar a hacer cositas en basic...
no se, es una idea, igual os parece una gilipollez, pero yo creo que daria opción a que se uniese mas gente a este mundo tan flipante del msx, gente a quien le guste pero que en principio no tengan muchos conocimientos...
porque os aseguro que a veces cuando ojeo los temas aqui en el foro, se me queda una cara Undecided ¡¡no entiendo nada! quiero decir que teneis mucho nivel y se hace dificil saber por donde tirar al principio.
Y despues de esta chapa, me despido, espero que no os parezca una tonteria esto que comento.
GRACIAS A TODOS!
Un Saludo!

bueno, mientras esa sección no exista aquí estamos unos cuantos para echarte una mano en lo que necesites Smiley  yo por lo menos me lo paso bien leyendo y contestando tus post's.

ANIMO!!!
En línea
msx dummie
Karoshi Lover
***
Mensajes: 162



Email
« Respuesta #64 : 24 de Octubre de 2007, 06:13:27 pm »

muchas Gracias! Smiley
me alegra saber eso porque a veces puede ser una chapa y también lo entiendo...
asi que se agradece saberlo, de verdad!
muchas Gracias! Smiley
En línea
Páginas: 1 ... 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!