Juego nuevo en basic, pero con dudas con Draw?
Moderador: Sir Cilve Sinclair
-
- rst 0
- Mensajes: 14
- Registrado: Mié Nov 21, 2007 2:59 am
Juego nuevo en basic, pero con dudas con Draw?
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
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
Última edición por ZX. el Lun Jul 08, 2013 12:24 am, editado 1 vez en total.
- jevilon
- Manic Miner
- Mensajes: 288
- Registrado: Mié Jul 23, 2008 1:15 pm
- Ubicación: La Rioja
Re: Juego nuevo en basic, pero con dudas con Draw?
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...
-
- rst 0
- Mensajes: 14
- Registrado: Mié Nov 21, 2007 2:59 am
Re: Juego nuevo en basic, pero con dudas con Draw?
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
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
- mcleod_ideafix
- Johnny Jones
- Mensajes: 3985
- Registrado: Vie Sep 21, 2007 1:26 am
- Ubicación: Jerez de la Frontera
- Contactar:
Re: Juego nuevo en basic, pero con dudas con Draw?
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
Última edición por mcleod_ideafix el Lun Jul 08, 2013 2:41 pm, editado 2 veces en total.
Web: ZX Projects | Twitter: @zxprojects
- mcleod_ideafix
- Johnny Jones
- Mensajes: 3985
- Registrado: Vie Sep 21, 2007 1:26 am
- Ubicación: Jerez de la Frontera
- Contactar:
Re: Juego nuevo en basic, pero con dudas con Draw?
Y si quieres enmascarar los IF's en la propia expresión...
Demostración (O P Q A para mover, SPACE para disparar)
http://www.zxprojects.com/atc/disparo_diagonal.z80
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
Web: ZX Projects | Twitter: @zxprojects
-
- rst 0
- Mensajes: 14
- Registrado: Mié Nov 21, 2007 2:59 am
Re: Juego nuevo en basic, pero con dudas con Draw?
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!
-
- rst 0
- Mensajes: 14
- Registrado: Mié Nov 21, 2007 2:59 am
Re: Juego nuevo en basic, pero con dudas con Draw?
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!
- mcleod_ideafix
- Johnny Jones
- Mensajes: 3985
- Registrado: Vie Sep 21, 2007 1:26 am
- Ubicación: Jerez de la Frontera
- Contactar:
Re: Juego nuevo en basic, pero con dudas con Draw?
¿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?
Web: ZX Projects | Twitter: @zxprojects
-
- rst 0
- Mensajes: 14
- Registrado: Mié Nov 21, 2007 2:59 am
Re: Juego nuevo en basic, pero con dudas con Draw?
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
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
- mcleod_ideafix
- Johnny Jones
- Mensajes: 3985
- Registrado: Vie Sep 21, 2007 1:26 am
- Ubicación: Jerez de la Frontera
- Contactar:
Re: Juego nuevo en basic, pero con dudas con Draw?
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
Web: ZX Projects | Twitter: @zxprojects
-
- rst 0
- Mensajes: 14
- Registrado: Mié Nov 21, 2007 2:59 am
Re: Juego nuevo en basic, pero con dudas con Draw?
Nuevamente gracias! es toda la información que necesitaba, ahora a programar el juego, saludos!
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 12 invitados