Página 1 de 1

Juego nuevo en basic, pero con dudas con Draw?

Publicado: Dom Jul 07, 2013 12:49 am
por ZX.
Después de mucho tiempo se me dio por hacer algun juego nuevo en basic, sucede que la nave enemiga que es un caracter se mueve por toda la pantalla y tiene que disparar desde su posicion en pantalla en forma diagonal a 45° hacia arriba derecha, abajo derecha, atras izquierda abajo y atras izquierda arriba, como se hace para que los disparos con Draw no se salgan de la pantalla?

5 Border 1
10 Let A=91 : Let B=91
70 Let C=11 : Let D=15
80 Print At C,D;"+"
110 Plot D*8+4,175-C*8-4
150 Draw A,B
----------------------------
5 border 1
70 Let C=10 : Let D=5
80 Let A=C*8+3 :Let B=C*8+3
90 Print At C,D; "+"
110 Plot D*8+4,175-C*8-4
150 Draw A,B

Re: Juego nuevo en basic, pero con dudas con Draw?

Publicado: Dom Jul 07, 2013 10:52 pm
por jevilon

Código: Seleccionar todo

The statement DRAW to draw a straight line takes the form

   DRAW x,y
The starting place of the line is the pixel where the last PLOT, DRAW or CIRCLE statement left off (this is called the PLOT position; RUN, CLEAR, CLS and NEW reset it to the bottom left hand corner, at (0,0)), and the finishing place is x pixels to the right of that and y pixels up. The DRAW statement on its own determines the length and direction of the line, but not its starting point.

Experiment with a few PLOT and DRAW commands, for instance

   PLOT 0,100: DRAW 80,-35
   PLOT 90,150: DRAW 80,-35
Notice that the numbers in a DRAW statement can be negative, although those in a PLOT statement can't.


Viene a decir que Draw tienes que ponerle la direccion y la longitud, a partir del ultimo plot, luego deberias calcular cuantos pixeles hay desde tu plot hasta la esquina de pantalla.... Ahora no tengo un emulador para probar y ponerte el codigo... pero creo que no te sera muy complicado...

Re: Juego nuevo en basic, pero con dudas con Draw?

Publicado: Lun Jul 08, 2013 12:14 am
por ZX.
Gracias Jevilon, vamos más o menos, cuando el caracter se mueve a la derecha y dispara en diagonal a 45°quiero lograr que le rayo no se salga de la pantalla por el costado sin importar a la altura que este volando, ya que se mueve arriba, abajo, derecha, e izquierda.

5 Border 1
70 Let C=3 : Let D=30
75 Let B=16 : Let E=16
80 Let A=C*8+3
90 Print At C,D; "+"
110 Plot D*8+4,175-C*8-4
150 Draw A-B,A-E

Re: Juego nuevo en basic, pero con dudas con Draw?

Publicado: Lun Jul 08, 2013 2:08 pm
por mcleod_ideafix
Pongamos que las cordenadas (las que usas en el PRINT AT) de tu nave son lin,col y que quieres disparar en la dirección "arriba-derecha". Pintar un rayo que salga desde el centro del carácter hasta la esquina que sea de la pantalla sería así (no pongo números de línea):

Código: Seleccionar todo

PRINT AT lin,col;"+"
LET x1=col*8+3: LET y1=(21-lin)*8+3
PLOT OVER 1;x1,y1
IF (175-y1)<(255-x1) THEN LET y2=175: LET x2=x1+175-y1
IF (175-y1)>=(255-x1) THEN LET x2=255: LET y2=y1+255-x1
DRAW OVER 1;x2-x1,y2-y1

Re: Juego nuevo en basic, pero con dudas con Draw?

Publicado: Lun Jul 08, 2013 2:15 pm
por mcleod_ideafix
Y si quieres enmascarar los IF's en la propia expresión...

Código: Seleccionar todo

PRINT AT lin,col;"+"
LET x1=col*8+3: LET y1=(21-lin)*8+3
PLOT OVER 1;x1,y1
LET cnd=(175-y1)<(255-x1)
LET x2=(x1+175-y1)*cnd+255*NOT cnd
LET y2=175*cnd+(y1+255-x1)*NOT cnd
DRAW OVER 1;x2-x1,y2-y1

Demostración (O P Q A para mover, SPACE para disparar)
http://www.zxprojects.com/atc/disparo_diagonal.z80

Re: Juego nuevo en basic, pero con dudas con Draw?

Publicado: Lun Jul 08, 2013 6:21 pm
por ZX.
Gracias mcleod_ideafix, ese era el efecto que buscaba, de echo ya habia realizado un juego en el año 2009(Trilogia espacial) que no recordaba basado en la "Guerra esferica" un juego que salio en las primeras revistas Microhobby, donde la nave gira y dispara, por último en que pagina puedo subir el archivo del juego para que pueda verse en el foro? saludos!

Re: Juego nuevo en basic, pero con dudas con Draw?

Publicado: Mié Jul 10, 2013 2:38 am
por ZX.
Ahora me gustaria saber como se puede hacer para que la nave recorra la pantalla y pueda disparar en 360° sin que los rayos se salgan de la pantalla? saludos!

Re: Juego nuevo en basic, pero con dudas con Draw?

Publicado: Mié Jul 10, 2013 5:25 am
por mcleod_ideafix
¿A qué te refieres? ¿A que el rayo que sale de la nave barra 360 grados como si fuera la aguja de un reloj? ¿O que puedas elegir en qué dirección disparar? Y si es esto último, ¿cómo elige la nave a dónde dispara? ¿Con un cursor de disparo estilo punto de mira, como en el Missile Command?

Re: Juego nuevo en basic, pero con dudas con Draw?

Publicado: Mié Jul 10, 2013 5:04 pm
por ZX.
Hola mcleod_ideafix , en este programa que hice la nave esta fija y dispara en cualquier dirección arriba y abajo, lo que yo quiero hacer es que la nave se desplase por la pantalla y dispare en cualquier dirección arriba, abajo, derecha, izquierda, y puede incluir un disparo especial que barra 360°

10 BORDER 0
100 PRINT AT 10,14;"XX"
200 LET F=INT (RND*32)
400 PLOT OVER 1; 120,92
410 DRAW OVER 1; -112+F*8-4,-92
420 PLOT OVER 1; 120,92
430 DRAW OVER 1; -112+F*8-4,-92
440 PAUSA 20
500 LET G=INT (RND*32)
510 PLOT OVER 1; 120,92
520 DRAW OVER 1; -112+G*8-4,83
530 PLOT OVER 1; 120,92
540 DRAW OVER 1; -112+G*8-4,-83
550 PAUSA 20
1000 GOTO 200

Re: Juego nuevo en basic, pero con dudas con Draw?

Publicado: Mié Jul 10, 2013 6:48 pm
por mcleod_ideafix
ZX. escribió:Hola mcleod_ideafix , en este programa que hice la nave esta fija y dispara en cualquier dirección arriba y abajo, lo que yo quiero hacer es que la nave se desplase por la pantalla y dispare en cualquier dirección arriba, abajo, derecha, izquierda, y puede incluir un disparo especial que barra 360°

¿Cualquier dirección o solo esas cuatro (arriba, abajo, izquierda, derecha)?

Para un disparo que barra 360 grados, haz cuatro bucles. Si x1,y1 son las coordenadas (de pixel) desde la que se se origina el disparo, un disparo que barre 360 grados podría ser así:

Código: Seleccionar todo

FOR y=0 TO 175 STEP 8: PLOT OVER 1;x1,y1: DRAW OVER 1;255-x1,y-y1: PAUSE 1: PLOT OVER 1;x1,y1: DRAW OVER 1;255-x1,y-y1: NEXT y
FOR x=255 TO 0 STEP -8: PLOT OVER 1;x1,y1: DRAW OVER 1;x-x1,175-y1: PAUSE 1: PLOT OVER 1;x1,y1: DRAW OVER 1;x-x1,175-y1: NEXT x
FOR y=175 TO 0 STEP -8: PLOT OVER 1;x1,y1: DRAW OVER 1;-x1,y-y1: PAUSE 1: PLOT OVER 1;x1,y1: DRAW OVER 1;-x1,y-y1: NEXT y
FOR x=0 TO 255 STEP 8: PLOT OVER 1;x1,y1: DRAW OVER 1;x-x1,-y1: PAUSE 1: PLOT OVER 1;x1,y1: DRAW OVER 1;x-x1,-y1: NEXT x

Re: Juego nuevo en basic, pero con dudas con Draw?

Publicado: Mié Jul 10, 2013 11:24 pm
por ZX.
Nuevamente gracias! es toda la información que necesitaba, ahora a programar el juego, saludos!