sprite copying

Get help using Construct 2

Post » Tue Dec 17, 2013 4:41 am

If you play that capx, you will see in level one that when you fire on the nut sacks only 1 will open , even though the others are copies. Which is what I want......so the issue that I cannot grasp is , why does the bullet not affect all of them when I collide with the first nutsack?

I mean I get why..because they have different ID's,

but why then when I collide with my bird, then i go to the struggle event and I win and the bird is destroyed, it destroys all of them instead of just the one im am interacting with.....people say its because I do not specify a certain instance....but if that were true then why does it work with the nutsacks when i do not specify a certain one there?

sorry , i just really need to understand this, its hard to move on. ha
B
9
S
2
Posts: 272
Reputation: 1,632

Post » Tue Dec 17, 2013 7:47 am

Like I thought..

The nutsack event is like this:
acornbullet on collision with nutsack - do stuff

Both acornbullet and nutsack are referenced in the event.
There is only one acornbullet colliding with one nutsack, so it is very clear which nutsack is meant.
I told my dentist I had trouble with my teeth and asked her to fix it without looking in my mouth..
B
54
S
16
G
8
Posts: 6,160
Reputation: 19,775

Post » Tue Dec 17, 2013 8:18 am

I'm working on a tutorial about picking, because there are still many questions about it. I'm not that good at writing (and explaining), so it might take some time..

Here's a quick look at the rough draft:

How does picking work?

When first starting to work with construct 2 (and even for some of us working with C2 for a longer period) it can be hard to make actions that only affect the instances of an object you'd like to affect.

Let's start with the simplest event:

Bullet on collision with enemy enemy destroy

In this event it is clear that it is our intention to only destroy the enemy that is hit by the bullet and it works as expected.

In my understanding Construct 2 reads this line something like this:

Destroy each enemy instanc that is hit by a bullet.

Without undertsanding how picking works one of the first issues arrive when trying to destroy enemies when their healthpoints are low.

Let's have a look at these events:

(enemy has been given an instance variable health set to 2)

Bullet on collision with enemy enemy subtract 1 from health

System compare two values : enemy.health < 1 enemy destroy

When testing these events with multiple enemies on screen, you will see that if you hit one enemy two times, all enemies on screen are destroyed. What is wrong here?

Basically the first event works as intended, 1 is subtracted from the enemy health variable of that instance only, much like the enemy destroy action mentioned before C2 reads the first event something like this:

Subtract 1 point from the health from each enemy instance that is hit by a bullet

So the trouble must be in the second event.
How does C2 interpret that event.

Check if the health from any enemy is lower than one, if so destroy all enemies.

But why?
This is because we haven't told C2 in the event which enemy we are talking about in the action following the event. No enemy instance is referenced in the event, so the actions apply to all enemy instances.

How to solve this?
The simple answer is: By telling C2 what instances should be affected by the action(s)

One way would be to make the system compare event a subevent of the collision event. We have seen that in the collision event the right enemy is picked so adding a subevent it's actions will be referencing the same instance.
Another way would be adding a system for each enemy as a condition to the second event. That way C2 will pick an enemy, test if the condition is true, act accordingly and pick the next instance and repeat the testing, untill all enemies have been picked and tested.

So with the for each event the instances are picked before testing the other conditions and as such the actions are related to the picked instance.

...
LittleStain2013-12-17 08:18:54
I told my dentist I had trouble with my teeth and asked her to fix it without looking in my mouth..
B
54
S
16
G
8
Posts: 6,160
Reputation: 19,775

Post » Wed Dec 18, 2013 5:41 pm

Hey littlestain a tutorial would be awesome, anyway you can do a video? Just explaining your thought process and all that. Right now I am watching the construct 2 class videos on youtube.
B
9
S
2
Posts: 272
Reputation: 1,632

Post » Mon Jan 13, 2014 3:58 am

I have not messed with constuct 2 in a few weeks because I cannot figure out this For each issue with my enemy.

Event lines 109-125
www.dwbailey.com/images/birdInstanceIssue.capx

Goal...When bird has line of site, it swoops down and upon collision with ground it begins a walk... when player contacts bird it brings up this Struggle meter icon and you try to win the battle by pressing Left Right, Left Right, if you when it destroys the bird, if you lose it brings up a heart...

Issue, the code I have creates un knowing results. when i collide and win the struggle, it destroys what seems to be the original placed bird sprite in the scene , even if I collide with the 2nd bird placed in the scene....just some varies things are happening...instead of the events just happening to each bird when the player come in contact with that particular bird......now some one mentioned clarifying instant id's or something......like I would have to rewrite that code for each birds ID..sounds like more work than it should be.
B
9
S
2
Posts: 272
Reputation: 1,632

Post » Mon Jan 13, 2014 3:59 am

http://gamejolt.com/games/platformer/squirrel-nuts/18498/

to play the game and see exactly what i mean....just have the player hit the bird.
B
9
S
2
Posts: 272
Reputation: 1,632

Post » Wed Apr 09, 2014 5:58 am

I finally got it to work right.....I did not really understand picking until I watched a video from udemy, online course.
https://www.youtube.com/watch?v=L1cqTR-J2Po

I joined this course and he had used picking for something and seeing it being used and where to find it and all that helped me out...Thanks to whoever this person is.

now when i destroy the bird, it only destroys the bird that is overlapping it at the time. man oh man.
B
9
S
2
Posts: 272
Reputation: 1,632

Previous

Return to How do I....?

Who is online

Users browsing this forum: No registered users and 27 guests