ZX Basic ¿se puede movimiento pixel a pixel?

Si tienes alguna duda y crees que alguien podría resolverla, ponla aquí. || If you have any doubt about programming, post it here.

Moderador: Administradores

Avatar de Usuario
trauma
16 bits
16 bits
Mensajes: 182
Registrado: 12 Nov 2007 09:18
Ubicación: Asturias
Contactar:

ZX Basic ¿se puede movimiento pixel a pixel?

Mensajepor trauma » 21 Oct 2013 00:43

Hola a todos, a ver si me podéis resolver esta duda. Estuve haciendo un tutorial de ZX Basic en el que consigues mover un personaje por pantalla, pero solo carácter a carácter. Mi pregunta es si este movimiento es una limitación del ZX Basic o si se puede hacer un movimiento pixel a pixel con este lenguaje (sin meternos en emsamblador) :roll:
ThunderWheels (Proyecto en Early Access) -> http://store.steampowered.com/app/296790/ThunderWheels/

Avatar de Usuario
Metalbrain
128 bits
128 bits
Mensajes: 1717
Registrado: 16 Oct 2005 15:56
Ubicación: Sevilla
Contactar:

Re: ZX Basic ¿se puede movimiento pixel a pixel?

Mensajepor Metalbrain » 21 Oct 2013 14:45

Poder, lo que se dice poder, se puede, pero no es nada sencillo.

El Basic del Spectrum está totalmente orientado al carácter (incluso el Hardware del Spectrum favorece esto). Ten en cuenta que la instrucción AT permite seleccionar la coordenada en caracteres, no en pixels, al igual que otras funciones como ATTR, SCREEN$... No existe nada para poner un gráfico en una determinada posición en pixels. Si quieres trabajar a nivel de pixel, tienes que usar las funciones gráficas PLOT, DRAW, etc... las cuales son extremadamente lentas (olvidate de mover con soltura algo que pase de varios pixels), o bien imitar el movimiento con diferentes caracteres.

En mi juego Pixelnoid (incluido en Popurri), hago uso de ambas técnicas (defino gráficos para la paleta en diferentes posiciones para poder moverla al pixel usando caracteres, y la pelota es un pixel que muevo con PLOT).

Otra posibilidad es que uses rutinas especiales que extiendan el BASIC, pero claro, estas usan ensamblador.
SevenuP se escribe con u minúscula y P mayúscula.

I need Speed - Kein Aufruf zu Drogenkonsum.

Avatar de Usuario
trauma
16 bits
16 bits
Mensajes: 182
Registrado: 12 Nov 2007 09:18
Ubicación: Asturias
Contactar:

Re: ZX Basic ¿se puede movimiento pixel a pixel?

Mensajepor trauma » 21 Oct 2013 15:50

Buena explicación, lo he entendido perfectamente, habría que simular la animación entre dos caracteres por decirlo de alguna manera... En fin, tendré que usar este sistema porque de ensamblador no tengo ni idea, aunque menuda perdida de recursos.

Gracias Metalbrain por despejarme la duda :P
ThunderWheels (Proyecto en Early Access) -> http://store.steampowered.com/app/296790/ThunderWheels/

Avatar de Usuario
MFM
16 bits
16 bits
Mensajes: 283
Registrado: 17 Ene 2009 05:48

Re: ZX Basic ¿se puede movimiento pixel a pixel?

Mensajepor MFM » 23 Oct 2013 01:22

Si te refieres al ZX Basic de Boriel, sí tiene implementadas rutinas para la impresión en alta resolución; si te refieres al Basic estándar del spectrum, no, las opciones son las que te comentó Metalbrain si no quieres acudir a rutinas en CM
Un saludo,

MFM Gandulf

Avatar de Usuario
trauma
16 bits
16 bits
Mensajes: 182
Registrado: 12 Nov 2007 09:18
Ubicación: Asturias
Contactar:

Re: ZX Basic ¿se puede movimiento pixel a pixel?

Mensajepor trauma » 23 Oct 2013 05:40

Sí, me refería al de Boriel, entonces ¿se podría desplazar un sprite pixel a pixel con este lenguaje?
ThunderWheels (Proyecto en Early Access) -> http://store.steampowered.com/app/296790/ThunderWheels/

Avatar de Usuario
MFM
16 bits
16 bits
Mensajes: 283
Registrado: 17 Ene 2009 05:48

Re: ZX Basic ¿se puede movimiento pixel a pixel?

Mensajepor MFM » 23 Oct 2013 06:22

http://www.boriel.com/wiki/en/index.php/ZX_BASIC:Library

En esta url viene la información sobre las rutinas que tienes disponibles, son bastantes.

Tendrás que usar esta librería o la rápida (la rápida ocupará muchas más memoria):

HRPrint.bas
High Resolution Print: Subroutine to print characters at any pixel level position on the screen, instead of just character positions. (Rather slow for sprites, but fine if speed isn't needed)

No te puedo poner ejemplos porque cuando programo para spectrum no lo hago en Basic, pero hay por la escena gente que lo controla (de todas formas en esa URL si haces click en la librería te salen ejemplos de uso)
Un saludo,

MFM Gandulf

Avatar de Usuario
trauma
16 bits
16 bits
Mensajes: 182
Registrado: 12 Nov 2007 09:18
Ubicación: Asturias
Contactar:

Re: ZX Basic ¿se puede movimiento pixel a pixel?

Mensajepor trauma » 23 Oct 2013 14:29

Wow! Que bueno! Gracias por la info :D Sí que está currado el ZX Basic...
Nunca programé nada para spectrum, me apetecía hacer algo y si veo que me da tiempo presentarme al concurso de recreativos para spectrum :mrgreen:
ThunderWheels (Proyecto en Early Access) -> http://store.steampowered.com/app/296790/ThunderWheels/

Avatar de Usuario
Ivanzx
256 bits
256 bits
Mensajes: 4309
Registrado: 20 Nov 2005 00:50
Ubicación: Frankfurt, Germany
Contactar:

Re: ZX Basic ¿se puede movimiento pixel a pixel?

Mensajepor Ivanzx » 25 Oct 2013 20:14

trauma escribió:Wow! Que bueno! Gracias por la info :D Sí que está currado el ZX Basic...
Nunca programé nada para spectrum, me apetecía hacer algo y si veo que me da tiempo presentarme al concurso de recreativos para spectrum :mrgreen:


Pues animo, que con el Basic de Boriel salen cosas muy muy apañadas. Por cierto, que el limite del concurso es definitivamente el 28 de Febrero de 2014, se amplio dos meses mas ;)


Volver a “Programación | Programming”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado