|
Post by luiscoco on Oct 1, 2021 1:54:06 GMT
Hello friends, I am new here, in 2018-2019 I started to make an AGD editor for Amiga, I did not continue it, but now that I am free, I have advanced a lot, then I can roll all the wonderful games that you have created with AGD at the same time. Amiga platform. I do not have information if Jonathan plans to make a version for Amiga, but for now I think not, so I will try to do my best Attachments:
|
|
|
Post by luiscoco on Oct 1, 2021 1:54:47 GMT
|
|
|
Post by oss003 on Oct 2, 2021 13:46:07 GMT
Are you Luis Enrique Fernandez Espinosa because if you are, we did have contact in 2018 about porting MPAGD to the Amiga. I'm happy to help you if you have any questions about MPAGD.
Greetings Kees
|
|
|
Post by luiscoco on Feb 17, 2022 6:10:03 GMT
Are you Luis Enrique Fernandez Espinosa because if you are, we did have contact in 2018 about porting MPAGD to the Amiga. I'm happy to help you if you have any questions about MPAGD. Greetings Kees Yes, thank you very much, I really want to do it, I will try to be more up to date with facebook and with this forum. I don't have enough time, I schedule late at night to advance it. My nick Luiscoco, is for colour computer from radio shack, I am a friend of @pser who made AGD for Dragon and coco, I want to ask @pser to make AGD for Coco 3 which can handle 16 colours. I have a question: I've noticed that there is nothing that specifies what the character's Sprite is (apart from making it move in the Player Event), but as AGD knows that you have to remove the player from a new Screen (because, in the Screen there is the character to place the respawn position). How can you eliminate it, for example, if we come from another screen and in this new screen, the character is also placed as a future respawn position. We delete any Sprite placed on this new screen that is the same as the character?. This also indicates that there cannot be 2 players? Let's remember that the player can have several sprites (and their frames) Where it says that the player is composed of certain sprites, (it doesn't say it) If this is true how can we delete the player's marker (which can be represented by sprite 1 or 2 or 4 I think I'm not clear enough Let's see, if the player is composed of sprite 1,2,3,4 and their respective frames, and enters screen 2 using sprite 1 and in this new screen is the player respawn marker using sprite 3. Question: How do I delete this respawn point marker sprite, so that there are not 2 images of players. The spawn points of the character are always deleted?, not the respawn points of the enemies? 1.- There is nothing to indicate that the player is made up of sprite 1,2,3 and 4 (possibly not necessary), but... excuse my english i use tranlate
|
|
|
Post by oss003 on Feb 17, 2022 9:45:26 GMT
================================================================================= I have a question:
I've noticed that there is nothing that specifies what the character's Sprite is (apart from making it move in the Player Event), but as AGD knows that you have to remove the player from a new Screen (because, in the Screen there is the character to place the respawn position). =================================================================================
Ok, first some explaination of terms:
- A sprite has a spritetype, multiple sprites may have the same spritetype - A spritetype defines the behaviour of the sprite - You can have 9 different spritetypes in MPAGD (EVENT SPRITETYPE) - Spritetype 0 is the player - A sprite has an image nr how it is displayed, this image nr is stored in the IMAGE variable - An image can have multiple frames which cycle with the ANIMATION command, the current frame nr is stored in the FRAME variable
The sprite is respawned as defined in the SPRITEPOSITION <sprite type>, <image nr>, <y-pos>, <x-pos> definition. The sprite is respawned only at startup of the game and after the spritetype is removed. When changing screens, the image nr, x-pos and y-pos of the player are in the new screen the same as in the old screen. You manually have to adjust these, so this is not a respawn. Eg if the player leaves the screen to the right at x-pos 248, you manually have to set the x-pos to 8 before drawing the new screen. The code looks like this in the EVENT PLAYER
EVENT PLAYER .... IF X = 248 SCREENRIGHT LET X = 8 ENDIF ....
Every time when the sprite is drawn, the EVENT INITSPRITE is executed and here you can also change player settings, eg:
EVENT INITSPRITE .... IF TYPE = 0 ; Check if player sprite IF SCREEN = 3 ; Check if screen 3 is drawn LET IMAGE = 6 ; Change image nr to 6 ENDIF ENDIF ....
================================================================================= How can you eliminate it, for example, if we come from another screen and in this new screen, the character is also placed as a future respawn position. We delete any Sprite placed on this new screen that is the same as the character?. =================================================================================
Leaving a screen and displaying a new screen is not respawning because the sprites are not removed. The player sprite is drawn on the new screen in the same position as it left the other screen. So you have to adjust the x-pos and y-pos if entering a new screen. Mostly only the x-pos is adjusted for leaving the screen to the right or left.
================================================================================= This also indicates that there cannot be 2 players? =================================================================================
Sure there can be but the second player has to have another spritetype. You can check keys in the sprite type event and also control that character. The keys must be different to the player sprite keys of course.
================================================================================= Let's remember that the player can have several sprites (and their frames) Where it says that the player is composed of certain sprites, (it doesn't say it) =================================================================================
The definition of the image nr (DEFINESPRITE) determines how many frames that image has.
================================================================================= If this is true how can we delete the player's marker (which can be represented by sprite 1 or 2 or 4 =================================================================================
With ANIMATE the frame counter (FRAME) in increased and reset if reached the end. You can change the frame counter by adjusting the FRAME variable.
================================================================================= I think I'm not clear enough
Let's see, if the player is composed of sprite 1,2,3,4 and their respective frames, and enters screen 2 using sprite 1 and in this new screen is the player respawn marker using sprite 3.
Question: How do I delete this respawn point marker sprite, so that there are not 2 images of players. =================================================================================
The player always has 1 image nr which can have multiple frames. When the player leaves a screen and enters a new screen, the image nr is not changed. If you want to change it, you have to do it by changing the image nr with adjusting the IMAGE vsriable
================================================================================= The spawn points of the character are always deleted?, not the respawn points of the enemies? =================================================================================
Only the enemie data is deleted and enemies are respawned at their respawn position after redrawing a screen. All respawn data is stored in the SPRITEPOSITION commands, for the player and the enemies.
================================================================================= 1.- There is nothing to indicate that the player is made up of sprite 1,2,3 and 4 (possibly not necessary), but... =================================================================================
No, the player can only have 1 sprite image but that can be changed with the IMAGE command. You only have to reset the frame counter manually when changing the image nr.
In short MPAGD works like this:
- At startup all sprites are removed, so when drawing the first screen, all enemy sprites including the player are respawned - When changing screens, only the enemies are removed and respawned in the new screen, not the player - When changing screens, the player has the same position on the new screen as leaving the old screen - Spritetypes define the behaviour of a sprite, multiple sprites with the same spritetype can be on the screen - Every sprite has it's own variables (image nr, frame nr, x-pos, y-pos, jump data, settinga and settingb) Greetings Kees
|
|
|
Post by luiscoco on Feb 17, 2022 22:33:49 GMT
Thank you very much, very clear. I was wrong, certainly with the type of sprite it is already clear, sorry for the long and repetitive question
|
|
|
Post by luiscoco on Mar 5, 2022 19:20:03 GMT
Hi. New question. I am doing the events, commands and variables but I have some doubts.
1.- Every line begins with a command never with a variable, that's why to assign a variable LET is used Question: is this required or can A = 3 or A 3 be used
2.- Some variables are commands or some commands are variables? or is it my confusion? example: OBJ is function? you can not do LET OBJ=3 or LET OBJ 3. Or BORDER, can you do LET BORDER 3 and set border colour or LET BORDER = 3 or IF BORDER = 3? Is variable with power to change border colour or is a function
3.- What is the colour of a sprite or object? can't do IF SPRITEINK=3 or colourOBJ ? or OBJCOLOUR
4.- DISPLAY SCORE or SHOWSCORE, what is the difference?
5.- The "=" is sometimes necessary or is always optional, as in LET H=3 or LET H 3.
6.- ENDSPRITE not documented
7.- Is possible LET SCREEN=7?
8.- I know that CANGOUP is filled only automatically but I ask can I do IF CANGOUP = TRUE or IF CANGOUP 1
9.- KEY UP, is function, is possible LET A = KEY UP
10.- If colour is a command, how can I know which is the default colour that is being used, since I cannot ask IF COLOUR = 71 or IF INK =71
11.- Because there is no AND OR or NOR I cannot know if a colour object is in flash mode, perhaps it would be necessary to create colour as a variable and FLASH, BRIGHT, PAPER, INK
12.- In the manual there are no variables V, W and Z, it is an omission or they are used in something special like X, Y
|
|
|
Post by oss003 on Mar 7, 2022 19:58:05 GMT
Yes, LET is required for setting a variable. There is a difference between commands and variables but there are some commands to set variables like eg. BORDER ans SCORE. It is not possible to use a command as a variable, so LET BORDER 3 doesn't work but BORDER 3 does. SPRITEINK 3 set the spritecolour to 3 but this is a sprite depending variable. THe object colour is defined in the object editor. DISPLAY SCORE doesn't work, SHOWSCORE displays the score at the current position. The "=" is not necessary[/quote] ENDSPRITE is used after OTHER and SPAWNED to reset the pointer to the original sprite Yes, SCREEN is a variable which can be set, CANGOUP is a function which returns false or true. KEY is a variable and UP is a constant. You can't read COLOUR and COLOUR can be used to set foreground-, background colour, flash or bright colour. These vars are writeonly so you cannot read the current FLASH, BRIGHT, PAPER, INK values. These variables can be used in MPAGD v0.7.10 A lot of your questions are answered in the documentation which comes with MPAGD v0.7.10. Greetings Kees Attachments:Multi Platform AGD.odt (151.39 KB)
|
|
|
Post by luiscoco on Mar 8, 2022 4:18:43 GMT
Thanks,
Ok I will review it further, but I see with some concern that a program (script) cannot know the colour of a sprite, object or block or the colour of the border, current background (PAPER) or ink of foreground (INK) and according to that colour make a decision and a course of action?
------ This is because Score is >256, right? What is its maximum, 32768, 65536? ----- It doesn't explain it in the manual.
---- Then ENDSPRITE = ORIGINAL? ------ It doesn't explain it in the manual.---
---------- So this moves you to another screen like screen NEXT but to any screen? or does it have no effect?, it just changes the variable, possibly confusing another question later (on purpose or not) like IF SCREEN = 7
It doesn't explain it in the manual. only
SCREEN Global variable. Contains the current screen number. -------------------
-------------- TRUE = 1 ? FALSE = 0 ? It doesn't explain it in the manual.
Then, I ask can I do IF CANGOUP = TRUE or IF CANGOUP 1, is correct? ---------------
I apologize, I do not want to be problematic, my interest is to understand everything well to be able to do it the best possible since it is a recreation not a port in assembly. Possibly in the future it could be a port.
|
|
|
Post by oss003 on Mar 8, 2022 8:55:40 GMT
Would be good to have the option to read some colours but this is not implemented now. Colour of sprites is only important if the MPAGD port has sprites in 1 colour. If your port (like the CPC port) has multicolour sprites, SPRITEINK doesn't make sense. ----------------------------------------------------------------------------------------- Score is a string "000000" and not a number which can be printed with SHOWSCORE. You have the possibility to print less digits, eg. SHOWSCORE 5 only prints 5 digits ----------------------------------------------------------------------------------------- ENDSPRITE was called ORIGINAL in older versions of MPAGD. When eg the player hits another sprite, that sprite has to be removed. This is programmed like this: EVENT PLAYER .... IF COLLISION 1 OTHER ; Switch pointer to other sprite REMOVE ; Remove other sprite ENDSPRITE ; Switch pointer back ENDIF ....
Or when a sprite is SPAWNED and you want to change eg the frameimage of the new sprite:
IF COLLISION 1 SPAWN 2 5 ; Spawn new spritetype2 with image 5 SPAWNED ; Switch pointer to new sprite LET FRAME 2 ; Change frame to 2 ENDSPRITE ; Change pointer back ENDIF ----------------------------------------------------------------------------------------- SCREEN 7 switches to SCREEN 7 but will be activated if the gameloop is ended. NEXTLEVEL increments the screen by 1 ----------------------------------------------------------------------------------------- You don't have to test for TRUE or FALSE because CANGOUP is a function. The syntax is:
IF CANGOUP ; If cangoup is true SPRITEUP ; Move spriteup ENDIF
Greetings Kees
|
|
|
Post by luiscoco on Mar 10, 2022 3:41:40 GMT
Perfect, I understood everything
|
|
|
Post by luiscoco on Mar 14, 2022 17:57:16 GMT
I have some technical problems with the .sna extraction, I don't know if you can help me and if I should try to discuss this here or do you prefer another way to communicate?
|
|
|
Post by oss003 on Mar 15, 2022 10:38:08 GMT
There is an MPAGD Slack channel which we can use ..... If you send me your e-mail address, I can invite you in Slack.
|
|
|
Post by luiscoco on Mar 15, 2022 14:19:03 GMT
There is an MPAGD Slack channel which we can use ..... If you send me your e-mail address, I can invite you in Slack. Ok luis45ccs at hotmail dot com, and thank you
|
|