How do you address a group of UDG's

The place for codemasters or beginners to talk about programming any language for the Spectrum.
Post Reply
llewelyn
Manic Miner
Posts: 205
Joined: Thu Feb 22, 2018 3:27 pm
Location: virginias eastern shore
Contact:

Re: How do you address a group of UDG's

Post by llewelyn »

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?
hikoki
Manic Miner
Posts: 576
Joined: Thu Nov 16, 2017 10:54 am

Re: How do you address a group of UDG's

Post by hikoki »

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.
User avatar
Morkin
Bugaboo
Posts: 3276
Joined: Mon Nov 13, 2017 8:50 am
Location: Bristol, UK

Re: How do you address a group of UDG's

Post by Morkin »

...That's OK, [mention]Joefish[/mention] has got it covered...
My Speccy site: thirdharmoniser.com
User avatar
Joefish
Rick Dangerous
Posts: 2059
Joined: Tue Nov 14, 2017 10:26 am

Re: How do you address a group of UDG's

Post by Joefish »

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.
+3code

Re: How do you address a group of UDG's

Post by +3code »

Joefish wrote: Sat Oct 03, 2020 11:25 pm 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.
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.
User avatar
Joefish
Rick Dangerous
Posts: 2059
Joined: Tue Nov 14, 2017 10:26 am

Re: How do you address a group of UDG's

Post by Joefish »

+3code wrote: Sun Oct 04, 2020 9:25 am 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.
You know more about that than I do! :lol:
+3code

Re: How do you address a group of UDG's

Post by +3code »

Joefish wrote: Sun Oct 04, 2020 10:23 am
+3code wrote: Sun Oct 04, 2020 9:25 am 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.
You know more about that than I do! :lol:
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)
hikoki
Manic Miner
Posts: 576
Joined: Thu Nov 16, 2017 10:54 am

Re: How do you address a group of UDG's

Post by hikoki »

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 
Post Reply