# kingpinzs

Members

1780

117 Neutral

• Rank
Contributor
1. ## python collision recursion issue

I changed bubbles.remove(bubble1)  to bubbles.discard(bubble1) and I no longer get the error. Thanks every one for taking the time to read my post.
2. ## python collision recursion issue

def remove_matching(self, bubbles): bubble_old = [] for bubble in list(bubbles): if self.color == bubble.color and self.collide(bubble): bubble_old = bubble bubbles.remove(bubble) self.touching(bubble_old, bubbles) return True return False this is the method that calls it.  The code works when the bubbles are lined up like this   x O x x O x x O x   O <-current ball      x  O  x x  O  x O O O    O <-current ball   the issue happens with anything like this   O O O O    O <-current ball   I have also tried this def touching(self, bubble, bubbles): for bubble1 in list(bubbles): if self.color == bubble1.color and dist(bubble.pos, bubble1.pos) <= 2 * BUBBLE_RADIUS: bubbles.remove(bubble_old) self.touching(bubble1, bubbles) I got the same error   and this gets this error RuntimeError: Set changed size during iteration  def touching(self, bubble, bubbles): for bubble1 in iter(bubbles): if self.color == bubble1.color and dist(bubble.pos, bubble1.pos) <= 2 * BUBBLE_RADIUS: bubbles.remove(bubble1) self.touching(bubble1, bubbles)
3. ## python collision recursion issue

def touching(self, bubble, bubbles): for bubble1 in bubbles: bubble_old = bubble1 if self.color == bubble_old.color and dist(bubble.pos, bubble_old.pos) <= 2 * BUBBLE_RADIUS: bubbles.remove(bubble_old) self.touching(bubble1, bubbles)     The error occurs when there are two rows right next to each that need to be removed. for example like this x x  x  x  x x O O O x x x  O O x x x  O  x x        O <-current ball Traceback (most recent call last):   File "main.py", line 140, in draw     if a_bubble.remove_matching(stuck_bubbles):   File "main.py", line 72, in remove_matching     self.touching(bubble_old, bubbles)   File "main.py", line 81, in touching     self.touching(bubble1, bubbles)   File "main.py", line 80, in touching     bubbles.remove(bubble_old) KeyError: <__main__.Bubble instance at 0x192c878>
4. ## How do I use a class object as a parameter?

Thanks for the help that fixed my issues. all I did    class Monster; // fwd declaration
5. ## How do I use a class object as a parameter?

I am getting errors. error: 'Monster' does not name a type error: 'Monster' has not been declared
6. ## How do I use a class object as a parameter?

How does one go about passing a class object as a parameter in another class's method.   e.g. class Player { Monster monster; bool attack(Monster& monster); }   class Monster { //do stuff   }
7. ## issue with image placement in respect of another image

I am using XNA 4.0 and c# how can I get an image to set its position according to the end of another image? this is what I have so far [code] rocketPosition = players.Position; rocketPosition.X += players.Position.X +40; rocketPosition.Y -= players.Position.Y -370 ; rocketAngle = players.Angle; Vector2 up = new Vector2(0, -1); Matrix rotMatrix = Matrix.CreateRotationZ(rocketAngle); rocketDirection = Vector2.Transform(up, rotMatrix); rocketDirection *= players.Power / 50.0f; [/code] the rocket goes in the right direction but its starting position is wrong if I move the cannon the code that moves the cannon [code] if (keybState.IsKeyDown(Keys.Left)) { if(players.Angle > MathHelper.PiOver4-.3) players.Angle -= 0.01f; } if (keybState.IsKeyDown(Keys.Right)) { if (players.Angle < MathHelper.PiOver2) players.Angle += 0.01f; } [/code]
8. ## Need help with a array sequence

After thinking about it for a while I came up with this. [code] void sequence::advance( ) { if(is_item()) { if(current_index <= used-1) { ++current_index; } } } [/code] but it is still advancing passed the array that has been created.
9. ## Need help with a array sequence

This is what I need to do // void advance( ) // Precondition: is_item returns true. // Postcondition: If the current item was already the last item in the // sequence, then there is no longer any current item. Otherwise, the new // current item is the item immediately after the original current item. And this is what I did [code] void sequence::advance( ) { if(is_item()) { if(current_index <= used) { ++current_index; } } [/code] but it goes passed the actual array data. How can I fix that? I'm using c++

I am using a bmp with a mask bmp

I am using this sample code for now tell I figure out how it all works [code] ODEL *LoadModel(char *filename) { MODEL *model = (MODEL*)malloc(sizeof(MODEL)); LPD3DXBUFFER matbuffer; HRESULT result; //load mesh from the specified file result = D3DXLoadMeshFromX( filename, //filename D3DXMESH_SYSTEMMEM, //mesh options d3ddev, //Direct3D device NULL, //adjacency buffer &matbuffer, //material buffer NULL, //special effects &model->material_count, //number of materials &model->mesh); //resulting mesh if (result != D3D_OK) { MessageBox(NULL, "Error loading model file", "Error", MB_OK); return NULL; } //extract material properties and texture names from material buffer LPD3DXMATERIAL d3dxMaterials = (LPD3DXMATERIAL)matbuffer->GetBufferPointer(); model->materials = new D3DMATERIAL9[model->material_count]; model->textures = new LPDIRECT3DTEXTURE9[model->material_count]; //create the materials and textures for(DWORD i=0; i<model->material_count; i++) { //grab the material model->materials[i] = d3dxMaterials[i].MatD3D; //set ambient color for material model->materials[i].Ambient = model->materials[i].Diffuse; model->textures[i] = NULL; if( d3dxMaterials[i].pTextureFilename != NULL && lstrlen(d3dxMaterials[i].pTextureFilename) > 0 ) { //load texture file specified in .x file result = D3DXCreateTextureFromFile(d3ddev, d3dxMaterials[i].pTextureFilename, &model->textures[i]); if (result != D3D_OK) { MessageBox(NULL, "Could not find texture file", "Error", MB_OK); return NULL; } } } //done using material buffer matbuffer->Release(); return model; } VOID DeleteModel(MODEL *model) { //remove materials from memory if( model->materials != NULL ) delete[] model->materials; //remove textures from memory if (model->textures != NULL) { for( DWORD i = 0; i < model->material_count; i++) { if (model->textures[i] != NULL) model->textures[i]->Release(); } delete[] model->textures; } //remove mesh from memory if (model->mesh != NULL) model->mesh->Release(); //remove model struct from memory if (model != NULL) free(model); } void DrawModel(MODEL *model) { //draw each mesh subset for( DWORD i=0; i<model->material_count; i++ ) { // Set the material and texture for this subset d3ddev->SetMaterial( &model->materials[i] ); d3ddev->SetTexture( 0, model->textures[i] ); // Draw the mesh subset model->mesh->DrawSubset( i ); } } [/code]