Nytt i forumet
Senaste privatannonserna
Prylar säljes, köpes, bytes och skänkes
| 2012-06-22, 17:08 | #1 |
mj123Medlem Registrerad: okt 2011 |
kan någon kika in i denna c++ problem (problem nr 2)
hejsan det var inte så länge sedan vi träffades :D, hur är det med er :) . i alla fall jag tänkte om ni kan hjälpa mig med ett litet problem här,
jag använder visual C++ express 2005 och får detta fel meddelandet: 1>------ Build started: Project: Basecode, Configuration: Debug Win32 ------ 1>Compiling... 1>Active.cpp 1>c:\users\nti\desktop\studsboll\active.cpp(26) : error C2065: 'Sprite' : undeclared identifier 1>c:\users\nti\desktop\studsboll\active.cpp(26) : error C2227: left of '->SetPosX' must point to class/struct/union/generic type 1> type is ''unknown-type'' 1>c:\users\nti\desktop\studsboll\active.cpp(26) : error C2227: left of '->GetPosX' must point to class/struct/union/generic type 1> type is ''unknown-type'' 1>c:\users\nti\desktop\studsboll\active.cpp(26) : error C2227: left of '->GetVelX' must point to class/struct/union/generic type 1> type is ''unknown-type'' 1>Build log was saved at "file://c:\Users\nti\Desktop\Studsboll\Debug\BuildLog.htm" 1>Basecode - 4 error(s), 0 warning(s) ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== det här är Avtive.cpp filen där problemen dyker upp: /***********************************************************
* Active.cpp - När spelet är igång
***********************************************************/
#include "Game.h"
/**
* Hantera input från användaren, t.ex. tangentbord och joypad.
*/
void UpdateInput(void) {
// uppdatera tangentbord och mus etc.
Input.Update();
if(Input.GetKeyState(CDXKEY_UPARROW)) {
// Upp
}
if(Input.GetKeyState(CDXKEY_DOWNARROW)) {
// Ner
}
if(Input.GetKeyState(CDXKEY_LEFTARROW)) {
// Vänster
//flytta spriten åt vänster (lägre värden åt vänster)
Sprite->SetPosX(Sprite->GetPosX() - Sprite->GetVelX());
}
if(Input.GetKeyState(CDXKEY_RIGHTARROW)) {
// Höger
}
}
/**
* Uppdatera objekt i spelet här, t.ex. sprites och kartor.
*/
void UpdateObjects(void) {
//uppdatera animationer, fiender etc. här
//flytta enligt bollens hastigheter
Ball->SetPos(Ball->GetPosX() + Ball->GetVelX(),
Ball->GetPosY() + Ball->GetVelY());
//studs mot nederkanten? byt riktning i y-led
if (Ball->GetPosY() + 50 > 480) Ball->SetVelY(-Ball->GetVelY());
}
/**
* Rita upp allting i denna!
*/
void Draw(void) {
// rita allting här, till BackBuffer (eller Screen->GetBack())
//fyll skärmen med svart
BackBuffer->Fill(0);
//rita spriten till skärmen
Ball->Draw(BackBuffer, 0, 0, CDXBLT_TRANS);
// flippa så att skärmytan i minnet (backbuffer) visas
Screen->Flip();
}
|
|
| 2012-06-22, 17:51 | #3 |
mj123Medlem Registrerad: okt 2011 |
det är är en boll som jag ska kunna röra med tangenterna.
skulle du kunna förklara lite mer på det här: http://msdn.microsoft.com/en-us/libr...(v=vs.80).aspx |
|
| 2012-06-22, 18:24 | #4 |
ElgotModerator Plats: Linköping Registrerad: apr 2004 |
Citat:
Det andra felet beror på att kompilatorn inte känner igen typen hos Sprite (vilket inte är så konstigt då den inte har definierats), men det är bäst att lösa problemen i ordning; kanske räcker det med att lösa det första för att de andra skall försvinna... |
|
|
| 2012-06-22, 19:16 | #6 |
mj123Medlem Registrerad: okt 2011 |
vart i Game.h ska jag tillägga det :
/*********************************************************** * Game.h - Variabler för sprites, kartor mm ***********************************************************/ #include "Main.h" DECLARE CDXSprite* Ball; // en konstant som sätter fönstrets titel #define GAME_NAME "Skeleton" // alltid med, skärmen och indata DECLARE CDXScreen *Screen; DECLARE CDXInput Input; // referens till skärmytan i minnet, dit man ritar allt DECLARE CDXSurface *BackBuffer; // // Lägg in dina variabler (objekt) här under // |
|
| 2012-06-22, 21:33 | #7 |
miffoMedlem Plats: Stockholm Registrerad: aug 2002 |
Jag ser ingen deklarering av variabeln Sprite någonstans.
Vilket ger \active.cpp(26) : error C2065: 'Sprite' : undeclared identifier Den är inte deklarerad och du försöker komma åt saker på den som verkar tillhör någon class/struct
__________________
orka |
|
|
| 2012-06-27, 12:17 | #8 |
Dalton SleeperMedlem Plats: där solen lyser över 12 Registrerad: sep 2003 |
Det är inte Sprite som ska bytas ut mot Ball då, då ball är deklarerad som en viss sprite?
__________________
... I'm a dishwasher, yes I am ... i7-3930K @ 4.5 GHz | 32GB Corsair Dominator GT @ 1866 MHz | Rampage IV Extreme x79 | 2 x 7970 OC 3GB @ 1.0 GHz/1.5 GHz | Antec Quattro OC 1.2 Kw | Samsung LE40C655 40" | SteelSeries Siberia V2 | Pioneer HTP-070 5.1 |
|
|
| 2012-07-06, 13:26 | #9 |
mj123Medlem Registrerad: okt 2011 |
tjena allihopa, jag har varit borde en hel del. men nu är jag tillbaka. okej jag hittade problemet jag såg inte att den var deklarerad. jag deklarerade den och det funkade. men jag fick ett ytterliggare ett problemet. jag försökte styra bollen med vänster pilen. men bollen åkte inte till vänster håll. min kod är
if(Input.GetKeyState(CDXKEY_LEFTARROW)) {
// Vänster
Sprite->SetPosX(Sprite->GetPosX() - Sprite->GetVelX());
|
|
| 2012-07-06, 15:30 | #10 |
LeMisanthrope01Avstängd Plats: Lidingö Registrerad: jun 2012 |
Citat:
Ett sätt att testa dig fram om du sitter fast är att skriva medelanden när saker och ting händer. Skriv std::cout<<"Vänster är tryckt"<<std::endl; efter if-satsen. Lite proffsigare kollar du debuggern vad som händer specifikt. Sätt en break point vid den raden. Senast redigerad av LeMisanthrope01 2012-07-06 klockan 15:36. |
|
|
Redaktionens senaste nyhetsrubriker
Prylar säljes, köpes, bytes och skänkes