Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

11

21.03.2010, 19:24

ja das liegt an dem code, der arbeitet mit rect´s und nicht pixelgenau

-=Andreas=-

unregistriert

12

21.03.2010, 20:27

Hi ich wollte mal fragen wie ich das Spiel mit Visual C++ 2008 Express so erstellen lassen kann das nur noch eine .exe dabei heraus kommt bzw. das ich dann nur noch einige Dateien auf einen anderen Computer geben muss damit das Spiel dort läuft.

Wenn ich mit Multithreaded oder Multithreaded-Debug erstelle kommt folgende Fehlermeldung!

Zitat


1>SDLmain.lib(SDL_win32_main.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__fprintf".
1>SDLmain.lib(SDL_win32_main.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__remove".
1>SDLmain.lib(SDL_win32_main.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__fopen".
1>SDLmain.lib(SDL_win32_main.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__setbuf".
1>SDLmain.lib(SDL_win32_main.obj) : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__freopen".

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

13

22.03.2010, 00:16

meinst du ohne dll´s? da musst du statisch linken.

-=Andreas=-

unregistriert

14

22.03.2010, 06:49

Wie geht das?

little_Progger

Treue Seele

Beiträge: 188

Wohnort: Nähe Bielefeld

Beruf: Azubi

  • Private Nachricht senden

15

22.03.2010, 22:21

---------------EDIT----------------

Ich hätte ma eine Frage an dich Andreas.

Ich habe eben versucht das mit deiner Lebensanzeige nachzuprogrammieren...
Naja Bild is aufm Screen, aber nich so wie ich will.
Ich habe mit einem Rect Array jedes der 7 Einzelbilder einzeln deklariert und übergebe
dann das Rect mit samt Koordinaten an eine eigene Funktion um das Bild zu bliten.
Nun Update ich das Spiel noch bei jedem durchlauf der Hauptschleife und prüfe Kollisionen
zwischen Spieler und Asteroiden, aber das Bild verändert sich nicht wenn eine Kollision
zwischen Spieler und Asteroiden festgestellt wird.

Könntest du mir vielleicht deinen Lösungsweg für die Lebensanzeige geben? :rolleyes:

Gruß Tobi

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »little_Progger« (28.03.2010, 22:54)


-=Andreas=-

unregistriert

16

29.03.2010, 19:27

Hallo Tobi

Zitat

Ich habe mit einem Rect Array jedes der 7 Einzelbilder einzeln deklariert und übergebe
dann das Rect mit samt Koordinaten an eine eigene Funktion um das Bild zu bliten.

Ich habe eine extra Klasse für die Lebensanzeige geschrieben. Die Zustände sind ein Sprite (also eine Grafik die alle Zustände der Lebensanzeige enthält). Ich arbeite also mit der CSprite Klasse aus dem Buch. Immer wenn eine Kollision erfolgt erhöhe ich die Variable m_fAnimState der Ladebalkenklasse und verändere so den Zustand der angezeigt wird.

Ich hoffe das dir das irgendwie hilft :S

-=Andreas=-

unregistriert

17

29.03.2010, 19:31

Ich habe jetzt ein neues Bonusobjekt in mein Spiel integriert. Immer wenn man es aufsammelt wird das Raumschiff eine Stufe aufgerüstet. Mein nächstes Ziel sind mehrere Level und auch Raumschiffe als Gegner die schießen können.



P.S.: Ich habe immer noch Probleme mit dem richtigen erstellen des Release! ?(

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »-=Andreas=-« (29.03.2010, 20:02)


little_Progger

Treue Seele

Beiträge: 188

Wohnort: Nähe Bielefeld

Beruf: Azubi

  • Private Nachricht senden

18

29.03.2010, 20:07

ne das hilft mir leider nicht weiter aber ich denke ich werde es einfach falls das den auch mal endlich bei mir funktionieren sollte per ttf anzeigen lassen.
Könntest du mir vielleicht deinen Quellcode zeigen wie du die ttf library verwendest den bei mir klappt es ja aber es wird kein Text angezeigt -.-'

wo ist den dein problem beim erstellen des Releases?

-=Andreas=-

unregistriert

19

29.03.2010, 20:17

Bitte code Tag nutzen

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#include "Text.hpp"

// Konstruktor
// Aufgabe: Allgemeine Initialisierungen
//
CText::CText()
{
// Der Zeiger auf den Bildschirm
m_pScreen = NULL;
// Der Zeiger auf die Schriftart
m_pFont = NULL;
// Der Zeiger auf die Message
m_pMessage = NULL;
}

// Destruktor
// Aufgabe: Surfaces und Font freigeben
//
CText::~CText()
{
TTF_CloseFont(m_pFont); 
SDL_FreeSurface(m_pMessage);
SDL_FreeSurface(m_pScreen);
}

// Init
// Aufgabe: Text erzeugen
// 
void CText::Init(const string sFont, int R, int G, int B, int FontSize, const string sMessage)
{
// Zeiger auf den Bildschirm initialisieren
m_pScreen = g_pFramework->GetScreen();

// Zeiger für die Schriftart initialisieren
m_pFont = TTF_OpenFont( sFont.c_str(), FontSize );

// Die Textfarbe bestimmen
m_TextColor.r = R;
m_TextColor.g = G;
m_TextColor.b = B;

// Pointer auf SDL_Surface Objekt m_pMessage zuweisen
m_pMessage = TTF_RenderText_Solid( m_pFont, sMessage.c_str() , m_TextColor );

m_Rect.w = m_pMessage->w;
m_Rect.h = m_pMessage->h;
m_Rect.x = 0;
m_Rect.y = 0;
}

// Init
// Aufgabe: Text erzeugen (überladen)
// 
void CText::Init(const string sFont, int R, int G, int B, int FontSize, int Zahl)
{
// Zeiger auf den Bildschirm initialisieren
m_pScreen = g_pFramework->GetScreen();

// Zeiger für die Schriftart initialisieren
m_pFont = TTF_OpenFont( sFont.c_str(), FontSize );

// Die Textfarbe bestimmen
m_TextColor.r = R;
m_TextColor.g = G;
m_TextColor.b = B;

// Einen Stringstream erzeugen der die Zahl aufnimmt
std::stringstream Text;

// Konvertierung der Zahl in ein stringstream 
Text << Zahl;

// Pointer auf SDL_Surface Objekt m_pMessage zuweisen
m_pMessage = TTF_RenderText_Solid( m_pFont, Text.str().c_str(), m_TextColor );

m_Rect.w = m_pMessage->w;
m_Rect.h = m_pMessage->h;
m_Rect.x = 0;
m_Rect.y = 0;
}

// SetPos
// Aufgabe: Text Position initialisieren (funktioniert nur für die nichtüberladene Init Funktion)
//
void CText::SetPos(float fXPos, float fYPos)
{
m_Rect.w = m_pMessage->w;
m_Rect.h = m_pMessage->h;
m_Rect.x = static_cast(fXPos);
m_Rect.y = static_cast(fYPos);
}


// Render
// Aufgabe: Text ausgeben
//
void CText::Render()
{
SDL_BlitSurface (m_pMessage, NULL, m_pScreen, &m_Rect);

}

// GetRect
// Aufgabe: m_Rect zurückgeben (mit Höhe,Breite und Position des Textes (nur für die nichtüberladene Funktion)
//
SDL_Rect CText::GetRect()
{
return m_Rect;
}</int></int>

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »fkrauthan« (06.04.2010, 18:03)


little_Progger

Treue Seele

Beiträge: 188

Wohnort: Nähe Bielefeld

Beruf: Azubi

  • Private Nachricht senden

20

29.03.2010, 20:36

kannste mir da vielleicht auch noch die header Datei und einen aufruf der klasse zeigen? :)

und danach schieß mit deinem problem los ^^

Werbeanzeige