Thanks everyone who offered helpful advice. I'd answer you each separately but it would take too much space.
I'm going to try the first suggestion of RWAC and see how it works out, haven't designed the UDG's yet that'll take me a day or two anyway.
Fascinating info from JOEFISH. I took a look at the version 23 PDF, blimey, seriously clever piece of programming. Why are there two versions? Which one should I choose to read up on?
How do you address a group of UDG's
Re: How do you address a group of UDG's
Sevenup allows for converting png to udgs. Import a png and export with these options
https://tcyr.files.wordpress.com/2012/02/basto1.jpg
Then build your string concatenating these udgs with chr$ control codes. Make sure your string contains an aureole of spaces so that the sprite gets erased when you print it at a new place on the screen.
That's just a few ideas for Printing a big sprite around the screen. There is a cool spritesheet animator in Basin that I never learnt to use.
https://tcyr.files.wordpress.com/2012/02/basto1.jpg
Then build your string concatenating these udgs with chr$ control codes. Make sure your string contains an aureole of spaces so that the sprite gets erased when you print it at a new place on the screen.
That's just a few ideas for Printing a big sprite around the screen. There is a cool spritesheet animator in Basin that I never learnt to use.
Re: How do you address a group of UDG's
...That's OK, [mention]Joefish[/mention] has got it covered...
My Speccy site: thirdharmoniser.com
Re: How do you address a group of UDG's
Get CharAde v23. v20 was a proper release but there was a bug in the expanded-map rendering so v23 was a patch to fix it.
Turns out you can also use HiSoft BASIC to compile your BASIC if you remember to CLEAR the space for the code block before you compile.
I need to now add a couple of demos of the fixed functions and how to compile to the instructions, which means at least one more release to come. But I think that will just be an update to the download bundle; the core code - as far as I know - doesn't need any more changes.
The 'Spectrum Files' link below has a load of stuff I've made that includes a few useful bits and pieces.
Turns out you can also use HiSoft BASIC to compile your BASIC if you remember to CLEAR the space for the code block before you compile.
I need to now add a couple of demos of the fixed functions and how to compile to the instructions, which means at least one more release to come. But I think that will just be an update to the download bundle; the core code - as far as I know - doesn't need any more changes.
The 'Spectrum Files' link below has a load of stuff I've made that includes a few useful bits and pieces.
Re: How do you address a group of UDG's
Wow, a new release. The manual is good but I think the thing need more demos, so the user can understand what really CharAde can made.
Re: How do you address a group of UDG's
You know more about that than I do!
Re: How do you address a group of UDG's
I have actually added AY in-game music reassembling CharAde at org 51796 and using this nice AY music editor/player:
https://spectrumcomputing.co.uk/entry/1 ... ic_Maestro
You can see a small demo here:
https://sites.google.com/site/samneverc ... ects=0&d=1
(you can only walk whit opqa)
Re: How do you address a group of UDG's
Found it!
Code: Select all
0 GO SUB 450
1 DEF FN b$(y,x)=CHR$ 22+CHR$ y+CHR$ x+" "+CHR$ 22+CHR$ (y+1)+CHR$ x+e$+CHR$ 22+CHR$ (y+2)+CHR$ x+f$+CHR$ 22+CHR$ (y+3)+CHR$ x+g$+CHR$ 22+CHR$ (y+4)+CHR$ x+" "
3 LET d$=CHR$ PEEK 23560: PRINT FN b$(y,x)
4 IF d$="p" THEN LET x=x+1: GO SUB 2200: IF x=29 THEN LET x=28
5 IF d$="o" THEN GO SUB 2100: LET x=x-1: IF x=-1 THEN LET x=0
6 IF d$="a" THEN LET y=y+1: IF y=18 THEN LET y=17
7 IF d$="q" THEN LET y=y-1: IF y=-1 THEN LET y=0
8 GO TO 3
450 LET y=8: LET x=5: GO SUB 2100
460 BORDER 3: PAPER 1: CLS : PAPER 5
500 FOR r=0 TO 12*8-1: READ s: POKE USR "a"+r,s: NEXT r
1000 DATA 1,3,7,7,15,18,18,22
1001 DATA 192,224,240,248,248,120,120,248
1002 DATA 15,15,31,59,119,110,108,76
1003 DATA 240,224,206,127,123,235,193,227
1004 DATA 104,76,104,76,105,205,153,211
1005 DATA 113,35,49,35,241,71,4,6
1006 DATA 3,7,15,31,31,30,30,31
1007 DATA 128,192,224,224,240,72,72,104
1220 DATA 15,7,115,255,222,215,131,199
1221 DATA 240,240,248,220,238,118,54,50
1222 DATA 142,196,140,196,143,226,32,96
1223 DATA 22,50,22,50,150,179,153,203
2000 RETURN
2100 LET e$=" \a\b ": LET f$=" \c\d ": LET g$=" \e\f ": RETURN
2200 LET e$=" \g\h ": LET f$=" \i\j ": LET g$=" \k\l ": RETURN