Ultimate Amiga

Please login or register.

Login with username, password and session length
Advanced search  
Pages: [1]   Go Down

Author Topic: A new guy with a present for everyone....  (Read 5616 times)

0 Members and 1 Guest are viewing this topic.

MichaelVParent

  • A600
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 62
A new guy with a present for everyone....
« on: May 17, 2008, 09:14:51 PM »

Hi fellow Amos users.  I'm new to AmosFactory.  I just recently got back into Amos and the Amiga after many years away from both.

Im a pixel artist who developed my skills on an Amiga with Deluxe paint and then Brilliance and have sense become a professional pixel artist, first working for Gameloft and now for Glu mobile.

several years ago I released to litterally a couple of people (in an older AMOS community) an example that showed that with careful palette arrangement and a super easy bit of code in Amos, you could plaster the screen with TRANSLUCENT bobs!  I'm referring to something much like all the cool alpha-blending-like effects that was in so many super nintendo game but slightly different and unique specifically to the amiga hardware. The method used creates zero overhead.  In fact it's likely faster than displaying standard bobs without the super-nintendo-esque translucency effect.

Anyway, I offer that old demo to anyone who wants it. I've hosted the file here :

http://www.holymonkeystudio.com/trans.zip




 I'm also working on a much more visually impressive demo and could really use some help with some basic amos stuff.( I no longer have a printed manual :( )

My goal is to make a demo that shows that with this technique and a few other tricks, even the most humble amiga models could have visually blown the genesis out of the water. (no disrespect to the genisis, it was a great unit)

I and several other professional artists will be making a complete game for the GP2x and wil be looking for one or more AMIGA programmers who would be interested in making the same game for AMIGAs.

thanks for listening and I hope you find the demo useful. :)

regards,
Mike (Holymonkey)

www.holymonkeystudio.com

Logged

selur

  • A600
  • *
  • Karma: 0
  • Offline Offline
  • Gender: Male
  • Posts: 83
Re: A new guy with a present for everyone....
« Reply #1 on: May 17, 2008, 10:15:18 PM »

Hello Holymonkey and welcome on Amos Factory!

I've seen your pixelart on your site and it's impressive  :P
Wish you good luck in your project.

cheers
Logged

SamuraiCrow

  • compile-time wierdo
  • Forum Mod
  • A1200
  • *****
  • Karma: 5
  • Offline Offline
  • Gender: Male
  • Posts: 946
  • Compile-time wierdo
Re: A new guy with a present for everyone....
« Reply #2 on: May 18, 2008, 03:55:37 AM »

Hello Holymonkey,

It's interesting that you're a GP2X developer.  I'm considering saving up for a Pandora when it comes out.  Sidewinder and I am trying to make a compiler that will translate Amos code into native executables on a number of systems.  Maybe we could target the GP2X and Pandora with code like Amos generates (only better optimized).

--Sam
Logged

MichaelVParent

  • A600
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 62
Re: A new guy with a present for everyone....
« Reply #3 on: May 18, 2008, 05:28:30 AM »

Sounds awesome.  I'd love to be able to develope in amos and run the executable on multiple platforms.

:)
Logged

Sidewinder

  • Forum Mod
  • A600
  • *****
  • Karma: 0
  • Offline Offline
  • Gender: Male
  • Posts: 155
    • http://www.liquido2.com/
Re: A new guy with a present for everyone....
« Reply #4 on: May 22, 2008, 01:11:59 AM »

Very nice demo, and welcome to the AMOS Factory!
Logged
- Sidewinder

MichaelVParent

  • A600
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 62
Re: A new guy with a present for everyone....
« Reply #5 on: May 22, 2008, 05:26:09 AM »

Thanks much Sidewinder for the kind words and the help.  :)

I'm a little more than half way done with a much more impressive demo but am having a few other problems.

I need to create some animated bobs (using amal) that will first animate by playing frames 1, 2, and 3 just once, and then continuously loop frames 4  and 5 from then on.  Any way to do this with Amal syntax?

Any way to force a bob animated with an amal channel to immediately start its animation over again?

for instance...if I have a bob designated as an explosion effect, and want to put it at a visible areas of the screen and restart its animation how would I do so...Then how would I detect its animation is done and move it back off-screen?

Lastly, how would I check for the overlapping of 2 specific bobs? (I know it would involve the collision commands, but whats the actual syntax?

thanks again,
Holymonkey (Mike)
Logged

Sidewinder

  • Forum Mod
  • A600
  • *****
  • Karma: 0
  • Offline Offline
  • Gender: Male
  • Posts: 155
    • http://www.liquido2.com/
Re: A new guy with a present for everyone....
« Reply #6 on: May 22, 2008, 11:07:03 PM »

I look forward to your next demo and I'm sure it will be great!

To animate a bob using AMAL playing frames 1,2,3 and then looping 4 and 5 continuously you could use two AMAL Anim commands like this [Anim's syntax is Anim <number of time to repeat, 0=forever>(frame, number of vbls to show the frame)...]:

A$ = "Anim 1,(1,1)(2,1)(3,1); Anim 0,(4,1)(5,1)"
Channel 1 To Bob 1
Amal 1,A$
Amal On 1

If you need to restart a program you can call Amal On again.  You can test if the animation is done by using the Chanan command:

' Restart the animation if it stops
If Chanan(1) = False Then Amal On

You can check for bob collisions using the AMAL BC command or the regular Bob Col command.  The BC command can only be used if you manually use the Synchro command.  Its syntax is:

v=BC(n,a,z)

v is the -1 if a collision has occurred between bob n and bobs a through z.

You must then test bobs a through z with the C command to determine which bob was hit.

v=C(n)

The Bob Col command has two forms:

c=Bob Col(n) : Rem Detect all collisions with bob n
c=Bob Col(n, a To z) : Rem Detect collisions between bob n and bobs numbered a through z

If c is True then you need to test the other Bobs using the Col command:

s=Col(n)

s will be True if the collision occurred with that object.
Logged
- Sidewinder

MichaelVParent

  • A600
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 62
Re: A new guy with a present for everyone....
« Reply #7 on: May 23, 2008, 04:17:13 AM »

Thanks again for the help Sidewinder, but unfortunately I must be missing something...

I 've tried commands exactly like this : "Anim 1,(1,1)(2,1)(3,1); Anim 0,(4,1)(5,1)" and all I ever see is the part that loops infinately...its as though the second Anim command totally eradicated the first command before the screen ever draws a frame. :(  Also, if an animation is looping Amal On does not restart it from the first frame. :(

Am I  just doing something wrong?

Logged

Sidewinder

  • Forum Mod
  • A600
  • *****
  • Karma: 0
  • Offline Offline
  • Gender: Male
  • Posts: 155
    • http://www.liquido2.com/
Re: A new guy with a present for everyone....
« Reply #8 on: May 23, 2008, 03:02:04 PM »

No, you're not missing something.  I forgot something about AMAL.

When animating an object, the Anim command doesn't wait for the last command to finish before continuing the program.  This is because you'll probably also want to Move the object after setting up the animation.  So what's happening here is that the second Anim command is preempting the first command before it has time to display the first images.

There are a few ways to fix this:

1.  Insert several Pause commands after the first Anim command to pause the program long enough to see the first animation.  This solution is ugly, but it works for stationary objects.

2.  Use the AUtotest command to flag the end of the first animation like this:

A$="AUtotest (If R1=1 Direct Y)"
A$=A$+"Let R1=0; Anim 1,(1,5)(2,5)(3,5); Wait;"
A$=A$+"Y: Anim 0,(4,5)(5,5)"

Then insert the following command in the main loop to test for the end of the first animation:

If Chanan(1)=False and Amreg(1,1)=0 Then Amreg(1,1)=1

This will execute the first Anim command and Wait for R1 to be equal to 1 before moving on to the second Anim.  R1 is set using the Amreg command.  The AUtotest is executed at the start of each Vbl or by using the Wait command.  This is a little less ugly than using a string of Pause commands.   :)

You're right about the Amal On command also.  I guess I'd try adding another flag to the AUtotest to restart the animation:

A$="AUtotest (If R1=1 Direct Y; If R2=2 Direct X)"
A$=A$+"X: Let R1=0; Let R2=0; Anim 1,(1,5)(2,5)(3,5); Wait;"
A$=A$+"Y: Anim 0,(4,5)(5,5)"

Then you just need to issue the Amreg(1,2)=1 command to restart the animation.
« Last Edit: May 23, 2008, 03:12:35 PM by Sidewinder »
Logged
- Sidewinder

MichaelVParent

  • A600
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 62
Re: A new guy with a present for everyone....
« Reply #9 on: May 24, 2008, 05:20:30 AM »

This looks like exactly what I need.  Thanks again.  I'll post the demo as soon as I finish...likely in a week or 2. :)
Logged

Eleas

  • A600
  • *
  • Karma: 0
  • Offline Offline
  • Gender: Male
  • Posts: 1
  • Generic Amiga User
Re: A new guy with a present for everyone....
« Reply #10 on: June 05, 2013, 07:48:58 AM »

The link to this technique seems to have expired. Is there anyone here who happens to have kept the file?
Logged

SamuraiCrow

  • compile-time wierdo
  • Forum Mod
  • A1200
  • *****
  • Karma: 5
  • Offline Offline
  • Gender: Male
  • Posts: 946
  • Compile-time wierdo
Re: A new guy with a present for everyone....
« Reply #11 on: June 06, 2013, 08:19:44 AM »

It's just a fancy way of using masking to make something appear translucent on a precalculated spread palette.  It's cool art but I'm afraid that's all it was.  If you wish for me to explain it in greater detail, I can.  But not right now.
Logged
Pages: [1]   Go Up
 

TinyPortal 2.2.2 © 2005-2022