08-13-2012, 06:12 AM
Bien, gracias @LCD. Ahora no solo funciona este codigo, sino que gracias a: (declarar las variables como enteros) logre hacer funcionar cerca de 6 rutinas que no estaban trabajando
Aqui dejo mi codigo
...y u respectivo archivo:http://www.mediafire.com/?zzjclem28762neq
la pelicula se puede mover con las teclas "o","p","q"."a"
MUY AGRADECIDO SI ALGUIEN ME PUEDE CORREGIR EN EL ANTERIOR PARA OPTIMIZAR RECURSOS.
Valga la redundancia, ya no tengo numeros negativos definiendo las variables como enteros, por lo que me vi obligado a trabajar con numeros altos y luego restar en el momento de imprimir: IF ymalo +d >127... PRINT AT ymalo+d-128,xmalo-128...
- Esto hace que me surja la siguiente pregunta: como hago para utilizar numeros negativos (y que me funcione el codigo)??
Tambien necesito saber como hago para utilizar los numeros que estan despues de la coma en una variable, por ej: LET a= a + 0.02
- Como hago para que una variable soporte este tipo de valores?
- Como hago para hacer etiquetas con nombres para las SUB-rutinas asi no depender del engorroso numero de linea del spectrum basic?
-Hay alguna forma de PGINAR EN 128K desde el ZX BORIEL sin tener que recurrir al assembler? las paginaciones tienen que ser siempre de a 16kb? o puedo paginar en la direccion de memoria que se me antoje y con una longitud de 192bytes por ej?
Code:
dim x , y , x , blablabla as uinteger

Aqui dejo mi codigo
Code:
'-----------------------------------------
' EXPLOSION (prueba)
'
' cargar explosionATTR.bin en 62000
'-----------------------------------------
dim ymalo,xmalo,d,q,expd,pijota,codi,cod as Uinteger
600 LET ymalo=130
LET xmalo=140
3000 BORDER 0
CLS
LET expd=62000
LET pijota=22528
3010 '
FOR d=(0+ymalo) to (9+ymalo)
3060 FOR q=(0+xmalo) to (6+xmalo)
LET cod=pijota+(32*(d-128))+(q-128)
LET codi= PEEK expd
IF d > 127 AND d < 152 AND q > 127 AND q < 160 THEN
POKE cod,codi
END IF
3085 LET expd=expd+1
3086 NEXT q
3088 NEXT d
LET X$=INKEY$
IF X$="q" AND ymalo > 118 THEN
IF ymalo >118 THEN
PRINT AT ymalo-119,xmalo-128;" "
END IF
LET ymalo=ymalo-1
END IF
IF X$="a" AND ymalo < 152 THEN
IF ymalo < 152 THEN
PRINT AT ymalo-128,xmalo-128;" "
END IF
LET ymalo=ymalo+1
END IF
IF X$="o" AND xmalo > 120 THEN
IF xmalo < 154 THEN
FOR d = 0 to 9
IF ymalo +d >127 AND ymalo +d < 152 THEN
PRINT AT ymalo+d-128,xmalo+6-128;" "
END IF
NEXT d
END IF
LET xmalo=xmalo-1
END IF
IF X$="p" AND xmalo < 160 THEN
IF xmalo > 127 THEN
FOR d = 0 to 9
IF ymalo +d >127 AND ymalo +d < 152 THEN
PRINT AT ymalo+d-128,xmalo-128;" "
END IF
NEXT d
END IF
LET xmalo=xmalo+1
END IF
3099 IF expd > 63050 THEN
GOTO 3000
END IF
3100 GOTO 3010
...y u respectivo archivo:http://www.mediafire.com/?zzjclem28762neq
la pelicula se puede mover con las teclas "o","p","q"."a"
MUY AGRADECIDO SI ALGUIEN ME PUEDE CORREGIR EN EL ANTERIOR PARA OPTIMIZAR RECURSOS.
Valga la redundancia, ya no tengo numeros negativos definiendo las variables como enteros, por lo que me vi obligado a trabajar con numeros altos y luego restar en el momento de imprimir: IF ymalo +d >127... PRINT AT ymalo+d-128,xmalo-128...
- Esto hace que me surja la siguiente pregunta: como hago para utilizar numeros negativos (y que me funcione el codigo)??
Tambien necesito saber como hago para utilizar los numeros que estan despues de la coma en una variable, por ej: LET a= a + 0.02
- Como hago para que una variable soporte este tipo de valores?
- Como hago para hacer etiquetas con nombres para las SUB-rutinas asi no depender del engorroso numero de linea del spectrum basic?
-Hay alguna forma de PGINAR EN 128K desde el ZX BORIEL sin tener que recurrir al assembler? las paginaciones tienen que ser siempre de a 16kb? o puedo paginar en la direccion de memoria que se me antoje y con una longitud de 192bytes por ej?