Spiel Klassen( Bitte helft mir)

02/03/2014 19:00 golle12#1
Und zwar habe ich folgendes Problem wenn ich alles von mir compile kommen Fehlermeldungen wenn ich diese weg klicke(also auf Ignorieren) dann funktioniert es und da wollte ich fragen ob bei mir irgend was falsch ist am source code oder ich etwas anderes falsch gemacht habe hoffe ihr könnt mir helfen :)

(Die Fehlermeldungen sind:" Facharbeitsspiel.exe hat einen Haltepunkt ausgelöst."
(weiter klick)
"Debug Assertion Failed"
(Ignorieren klick)
"Facharbeitsspiel.exe hat einen Haltepunkt ausgelöst."
(weiter klick)
Das "Spiel" wird dann mir richtig angezeigt aber die Fehlermedungen kommen davor
)

Ich nutzte IDE Microsoft Visual C++ 2014

Player.cpp
PHP Code:
#include "Player.h"


Player::Player(sf::String p_texture)
{
    if (!
player_texture.loadFromFile(p_texture))
    {
        
std::cout << "Player texture could not be loaded!" << std::endl;
    }
    else
    {
        
std::cout << "Player texture could be loaded!" << std::endl;
    }

    
player_texture.setSmooth(false);
    
player_sprite.setTexture(player_texture);
    
rect sf::FloatRect(8202551616);
}


Player::~Player()
{

}

void Player::update(sf::RenderWindow &windowfloat time)
{

}

void Player::P_RenderWindow(sf::RenderWindow &window)
{
    
window.draw(player_sprite);


Player.h
PHP Code:
#pragma once
#include <SFML\Graphics.hpp>
#include <iostream>

class Player
{
public:
    
    
Player(sf::String p_texture);
    ~
Player();

    
void update(sf::RenderWindow &windowfloat time);
    
void P_RenderWindow(sf::RenderWindow &window);
    
protected:
private:
sf::FloatRect rect;
sf::Texture player_texture;
sf::Sprite player_sprite;
}; 
main.cpp
PHP Code:
#include "Player.h"
#include "Enemy.h"

int main()
{
    
sf::RenderWindow window(sf::VideoMode(800600), "");
    
Player p_player("Player.png");

    
window.setKeyRepeatEnabled(false);

    
    
sf::Clock clock;

    while (
window.isOpen())
    {

        
float time clock.getElapsedTime().asMicroseconds();
        
clock.restart();

        
time time 500;

        if (
time 20time 20;

        
sf::Event event;
        while (
window.pollEvent(event))
        {
            if (
event.type == sf::Event::Closed)
                
window.close();
        }
        
window.clear(sf::Color(117,171,255));

        
p_player.update(window,time);
        
p_player.P_RenderWindow(window);

        
window.display();
    }

    return 
0;

Enemy.h
PHP Code:
#pragma once
#include <SFML\Graphics.hpp>
#include <iostream>

class Enemy
{
public:
    
Enemy(sf::String e_texture);
    ~
Enemy();

    
void update();
    
void E_RenderWindow(sf::RenderWindow &window);
protected:
private:
    
sf::Texture enemy_texture;
    
sf::Sprite enemy_sprite;
}; 
Enemy.cpp
PHP Code:
#include "Enemy.h"


Enemy::Enemy(sf::String e_texture)
{
}


Enemy::~Enemy()
{

02/03/2014 19:27 [uLow]NTX?!#2
Und was für ein error kommt?
02/03/2014 20:44 golle12#3
Hier habe ich mal in einem Video die Error Meldungen zeigen lassen (denn an sich sich sind keine Fehler im Script aber diese Haltepunkte schon ... :/ )

(Die Fehlermeldungen sind:" Facharbeitsspiel.exe hat einen Haltepunkt ausgelöst."
(weiter klick)
"Debug Assertion Failed"
(Ignorieren klick)
"Facharbeitsspiel.exe hat einen Haltepunkt ausgelöst."
(weiter klick)
Das "Spiel" wird dann mir richtig angezeigt aber die Fehlermedungen kommen davor
)


[Only registered and activated users can see links. Click Here To Register...]
02/04/2014 08:26 Mostey#4
Hört sich stark nach gesetzten Breakpoints an. Die werden durch rote Punkte dargestellt und pausieren die Codeausführung.

Hast du denn mal mit dem Debugger geschaut, was das sonst sein könnte? Also nicht einfach stupide auf "Weiter" klicken sondern mal mit "Unterbrechen" nachschauen.
02/04/2014 10:37 Nightblizard#5
Quote:
Originally Posted by Mostey View Post
Hört sich stark nach gesetzten Breakpoints an. Die werden durch rote Punkte dargestellt und pausieren die Codeausführung.

Hast du denn mal mit dem Debugger geschaut, was das sonst sein könnte? Also nicht einfach stupide auf "Weiter" klicken sondern mal mit "Unterbrechen" nachschauen.
Das ist Unsinn. Da wird ganz einfach ungültiger Speicher freigegeben und eine assertion bekommt davon Wind.

Da du nicht den ganzen Callstack (Aufrufliste) zeigst, kann man hier nur raten. Jedoch weist das bisschen Gezeigte auf einen String hin und da benutzt du nicht viele. Ohne die Implementation davon zu kennen, würde ich sagen ändere mal die Signatur der Player Konstruktors und lass dir den String als const reference übergeben, mit etwas Glück reicht das schon. Sollte das nicht funktionieren wäre ein größerer Auszug aus dem Callstack ganz hilfreich.
02/04/2014 16:17 golle12#6
Das welches Oben gezeigt wurde also der komplette Source Code von Oben ist alles. Da gibt es nicht mehr.