YolkfolkThe Dizzy Fansite
Community discussion

Beginners need help

Started by Marcell Fischer on 18 January 2020 • 3,659 views

14 posts
#55785

Hello everybody,

I signed up here, hoping that someone can give me programming help with dizzyAGE.

}
SamplePlay(FX_SUCCESS);
Message1(0,4,""HERE IS YOUR KEY,DYLAN.nBE MORE CAREFUL NEXT TIME"");
MessagePop();
Message2(8,2,""THANKS DIZZY!nI PROMISE I WILL."");
MessagePop();
InventorySub(idx);
ObjSet(objidx,O_STATUS,2);
ObjSet(objidx,O_X,2886);
ObjSet(objidx,O_Y,504);
ObjSet(objidx,O_TILE,188); // happy
}

I tried to copy the code from another game (thanks at this point for a password-free unpacking) :tup:
It works as far as well only with me dylan "... TILE, 188" is only shown half. it is cut off on the right. I tried another TILE - the same... {yolkfolk}:scratch:
I would be grateful for any solution.
Best regards from Germany
Kalle

👍 0
#87796
Not sure what you're trying to achieve but assume that having given Dylan a key you're changing the 'picture' of Dylan from sad to happy.

If so, then you need to identify the tile you're moving before setting the new coordinates ...and check that the layer is correct as having a new tile appear that has a lower layer number than part of the scenery layer number, the new tile will be partly or wholly obscured by the scenery. Also, if moving a dynamic tile into the room you're currently in it's best to add an ObjPresent(idx) command or whatever the tile's tag is, to update the game.

However, it's a lot easier to have both pictures of dylan already on the map, and just disable the happy tile so that when the key is given you just have to use the commands:

ObjSet(ida, O_DISABLE, 1); ObjSet(idb, O_DISABLE, 0);

providing that at the start of the specific function you have set the tags ie
ida = ObjFind(400); //tile of Dylan sad
idb = ObjFind(401); //tile of Dtylan happy.

Also, a good idea is to have a look at Delta's videos of basic game construction - if they're still on this site. Are they Adam?
👍 0
#87798

Welcome Kalle. :smile:

[quote data-userid="279" data-postid="87796"]

Also, a good idea is to have a look at Delta’s videos of basic game construction – if they’re still on this site. Are they Adam?

[/quote]

My knowledge on the engine is not too great, but the DizzyAGE site itself has an articles section to help first time programmers.

:egg: https://www.yolkfolk.com/dizzyage/articles.html

The "Videos" tab has a list of tutorials showing the coding basics of DizzyAGE.

Also the "Tech Demos" tab has the "Make Your Own Dizzy Game" step by step guide which I'm sure also covers character conversations.

I'm not sure which DizzyAGE games you tried to unpack, but most of Jamie Douglas' games can be unpacked for educational purposes.

Apologies if this isn't what you're after.

👍 0
#87799

Thank you for the quick answers and a hello to you back :smile:

[quote data-userid="279" data-postid="87796"]

Not sure what you’re trying to achieve but assume that having given Dylan a key you’re changing the ‘picture’ of Dylan from sad to happy.

[/quote]

Yes, that was exactly what I wanted to achieve.
The code comes from the game "Mushroom Pie".
I took a closer look at this in the map editor and found that the Dylan tiles were stored there separately. That was also the mistake. I had taken Dylan from yolkfolk.tga.
Now it worked and I am thrilled.
Now I'm going to try your solution Grandad. Since I want to continue to speak to Dylan {yolkfolk}:scratch:
ObjSet(ida, O_DISABLE, 1); ObjSet(idb, O_DISABLE, 0);

providing that at the start of the specific function you have set the tags ie
ida = ObjFind(400); //tile of Dylan sad
idb = ObjFind(401); //tile of Dtylan happy.

Hello Adz.M. For some time now I have been browsing through the GS9 and Dizzy AGE books as well as this forum. Play various DizzyAGE games (which can be unpacked without passwords) to understand which solutions have been used.

Best regards
Kalle (not Adam) {yolkfolk}:puzzled:

PS: Sorry, I have to admit that my programming skills are the same as my English skills. (google translate is my best friend)

👍 0
#87800

Glad we were able to help Kalle.

When I made my very first game (the original Daisy goes Solo from 2009, not the 2018 version) I knew nothing about 'proper' programming, so in the Game.GS file I actually included written details of everything I did, including things that could go wrong, If it helps, download the game and unpack it.

I should warn you that at that time I knew nothing about 'tags' so every command is on the lines of ObjGet(ObjFind(xxx), rather than ObjGet(ida, etc.

Hope Google is up to translating it {yolkfolk}:cheers:

PS - Adam is AdzM's proper name.

👍 0
#87801

Hello everybody,
good evening grandad {yolkfolk}:cheers:
Google Translate was gracious and translated everything fine.
I played your game and it is very good and fun. I can not judge whether it is well and correctly programmed. It works and that's the main thing, isn't it?
In room "edge of the hill" I noticed that I could just take a hidden coin from the billy goat. was that what you intended?
I'm currently trying to create a similar puzzle, but unfortunately I can take my hidden coin beforehand without having solved the puzzle.
First I made it invisible. Did not work. Then hidden behind a black square which disappears after completing the puzzle. doesn't work either.
The aim is to knock over a barrel to find or take the coin behind it. {yolkfolk}:scratch:
I will try again and get in touch again with this or other problems.

Best regards
Kalle

👍 0
#87803
Kalle, just give the coin an id number and set it as disabled (just like any other hidden object) but still give it a class of 'coin'

Then when the puzzle is solved add the line

ida = ObjFind(444) //id of disabled coin
ObjSet(ida, O_DISABLE, 0); //make the coin visible

You need the id number so that the engine knows what object to make visible and available. Once the coin is visible and active then it can be picked up as normal.
👍 0
#87805

Good evening everyone,
Hello Grandad, thank you for your active support {yolkfolk}:cheers:

I didn't get it straight away and wrote a novel here. until I saw the "disable" option in the editor that you mentioned. Blindness. :cool: What is the difference between ida and idx? both seem to work.
The puzzle works now and I am very happy with it. now i have some time to continue playing your game. :tup:

Best Regards

Kalle

👍 0
#87808

Kalle, There's no difference between 'ida' and 'idx' ...or whatever you want to call a tag. All that matters is that the tag identifies a specific object/brush in the function being used. Just remember that tags have to be identified in each separate function before using them in a command.

I like to use different tags as some of my functions can involve up to a dozen different objects being manipulated and find it easier to have different tags for each object when checking for errors. Also, it saves typing ObjGet(ObjFind(xxx), all the time and making your fingers tired {eggs2}:denzil:

Some people only use 'idx' for object tags, but that's only convention. Do what works for you is what I say :tup:

👍 0
#87813

Hello everybody,
Good evening Grandad, {yolkfolk}:cheers:
ok, good to know and a good idea to keep an overview.
I saw a list of your games here in the forum and was surprised how many there are. :o_o: Hats off! :tup:
Which one have you been working on the longest?
I'm trying to remake in the original C64 style (call me an outsider BUT my first computer was a C64 and my first pirated version of Fantasy World Dizzy - my heart depends on it) {yolkfolk}:redfaced:
So, I will continue to tinker and try ... there is enough to do.

Best regards

Kalle

👍 0
#87815

Hi Kalle,

I first played Dizzy on an Atari, so I prefer the more colourful style of the Amiga & Atari graphics over the rather basic look of the Spectrum and C64.

My version of 'Fantasy World Dizzy' is called 'Fantasy World Daisy' and is different to the original, but some of the puzzle structures are the same, so feel free to check that out if it helps.

I don't make my games in the 'normal' way. I tend to start with an idea and then just make it up as I go along; adding bits and taking bits away. So some games take longer to make than others. But the main attempt is for people to enjoy playing the game, as well as mess with their heads with some complicated puzzles ...and occasionally to shock :o_o:

The idea for my latest game involves Dizzy driving a minecart around a large railway. it's not as easy as it sounds as some 'tunnels' lead to new sections of the game which includes amended versions of 'Fantastic Dizzy', 'Another Treasure Island Dizzy', 'Back to Magicland' and 'Crystal Kingdom Dizzy' and I've tried to keep the graphics as authentic as possible - Amiga versions, not Speccy or C64. Currently, I'm up to 500 rooms and still not finished drawing the map :wall:

👍 0
#87821

Hello Grandad,

first of all thank you for being loyal to this forum. :tup: I can already tell that Daisy was particularly dear to you and I'm happy that you are working on another game. I am very excited!
There will definitely not be 500 rooms for me! I was thinking about 50 rooms. Maximum! :surprise:
I also played a lot of games on the Amiga. The graphics were of course a lot better. I'm not sure about the sound. I would prefer 64er Sids.
I'll be browsing some of your games to see how you've implemented some features.
For the time being I am adapting the surface and game mechanics. Since it should be almost identical to the c64 version.

Best regards

Kalle

👍 0
#88054
You need the id number so that the engine knows what object to make visible and available. Once the coin is visible and active then it can be picked up as normal.
👍 0