Hey Leute,
Ich habe ein Problem mit "Zugriffsrechten".
Das ist der Code:
main
Player.h
Player.cpp
Mfg,
Kosic
PS: Bitte vergebt mir, wenn ichs einfach gerade Übersehe oder ein Stück Code vergessen habe zu posten. Es ist schon spät und ich bin müde. Gute Nacht!
Ich habe ein Problem mit "Zugriffsrechten".
Laut Compiler ist die Funktion "Stone.draw_Enemy();" schuld.Quote:
Unbehandelte Ausnahme bei 0x76f715de in Universe_Area official.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0x00000010.
Das ist der Code:
main
Code:
#include <Windows.h>
#include "Randomizer.h"
#include "Window.h"
#include "Player.h"
#include "Sound.h"
int main()
{
/*
CODE
*/
Enemy Stone;
sf::Texture TStone = Stone.define_Enemy( "***/****/****.png" );
sf::Sprite *SStone;
sf::RenderWindow App( sf::VideoMode( 806, 600, 32 ), "Universe Area Alpha 1.2.2.0", sf::Style::Titlebar );
App.setFramerateLimit( 60 );
WindowEvent wEvent;
/*
CODE
*/
while( App.isOpen() )
{
/*
CODE
*/
SStone = Stone.spawn_Enemy( TStone, 30, 30 );
App.clear( sf::Color( 0, 0, 0 ) );
/*
CODE
*/
Stone.draw_Enemy( App, SStone );
App.display();
}
return 0;
}
Code:
#include <SFML/Graphics.hpp>
#include <string>
#include <list>
#include "Randomizer.h"
/*
CODE
*/
/*****-GEGNERKLASSE-*****/
class Enemy
{
private:
sf::Texture TEnemy;
float CenterX;
float CenterY;
sf::Clock SpawnTimer;
std::list<sf::Sprite>EnemyListe;
std::list<sf::Sprite>::iterator EnemyIt;
public:
sf::Texture define_Enemy( const std::string TexturePfad );
sf::Sprite* spawn_Enemy( sf::Texture &sTEnemy, const int TextureX, const int TextureY );
void draw_Enemy( sf::RenderWindow &Window, sf::Sprite *dSEnemy );
};
/*****-GEGNERKLASSE-*****/
Code:
#include "Player.h"
//-------------------------------------------------------------------------------------------------// **BEGIN**
//-------------------------------------------------------------------------------------------------// **BEGIN**
//-------------------------------------------------------------------------------------------------// **BEGIN**
sf::Texture Enemy::define_Enemy( const std::string TexturePfad )
{
TEnemy.loadFromFile( TexturePfad );
return TEnemy;
}
sf::Sprite* Enemy::spawn_Enemy( sf::Texture &sTEnemy, const int TextureX, const int TextureY )
{
CenterX = ( TextureX / 2);
CenterY = ( TextureY / 2);
if( true )
{
if( SpawnTimer.getElapsedTime() > sf::seconds( 0.2 ) )
{
sf::Sprite *ESprite;
ESprite = new sf::Sprite;
ESprite->setTexture( sTEnemy );
ESprite->setPosition( int_Randomizer( 20, 770 ), -50 );
ESprite->setOrigin( CenterX, CenterY );
EnemyListe.push_back( *ESprite );
SpawnTimer.restart();
return ESprite;
}
}
}
void Enemy::draw_Enemy( sf::RenderWindow &Window, sf::Sprite *dSEnemy )
{
for(EnemyIt = EnemyListe.begin(); EnemyIt != EnemyListe.end(); EnemyIt++)
{
dSEnemy->move( 0, 5 );
Window.draw( *dSEnemy );
//Gegner löschen bei ungültiger Y-Position
if( EnemyIt->getPosition().y > 660 )
{
EnemyListe.erase( EnemyIt );
EnemyIt = EnemyListe.begin();
}
}
}
//-------------------------------------------------------------------------------------------------// **END**
//-------------------------------------------------------------------------------------------------// **END**
//-------------------------------------------------------------------------------------------------// **END**
Kosic
PS: Bitte vergebt mir, wenn ichs einfach gerade Übersehe oder ein Stück Code vergessen habe zu posten. Es ist schon spät und ich bin müde. Gute Nacht!