wieso zum teufel stürtzt das spiel während dem load ab?

Previous topic - Next topic

Arkarin

das prog is zwar noch nit fertig. aber dennoch konnte ichs starten. bis ich die variable Chara änderte und nun nichts mehr geht. bitte helft mir
hier der code:
Code (glbasic) Select
[// --------------------------------- //
// Project: Die Legende des Landes Adyl- Das Game
// Start: Monday, October 01, 2007
// IDE Version: 5.014



LOADSPRITE "Bilder/Charas/Krieger_männlich_hinten.bmp", 900111
LOADSPRITE "Bilder/Charas/Krieger_männlich_links.bmp",  900112
LOADSPRITE "Bilder/Charas/Krieger_männlich_rechts.bmp", 900113
LOADSPRITE "Bilder/Charas/Krieger_männlich_vorn.bmp",   900114
LOADSPRITE "Bilder/Charas/Krieger_weiblich_hinten.bmp", 900121
LOADSPRITE "Bilder/Charas/Krieger_weiblich_links.bmp",  900122
LOADSPRITE "Bilder/Charas/Krieger_weiblich_rechts.bmp", 900123
LOADSPRITE "Bilder/Charas/Krieger_weiblich_vorn.bmp",   900124
LOADSPRITE "Bilder/Charas/Magier_männlich_hinten.bmp",  900211
LOADSPRITE "Bilder/Charas/Magier_männlich_links.bmp",   900212
LOADSPRITE "Bilder/Charas/Magier_männlich_rechts.bmp",  900213
LOADSPRITE "Bilder/Charas/Magier_männlich_vorn.bmp",    900214
LOADSPRITE "Bilder/Charas/Magier_weiblich_hinten.bmp",  900221
LOADSPRITE "Bilder/Charas/Magier_weiblich_links.bmp",   900222
LOADSPRITE "Bilder/Charas/Magier_weiblich_rechts.bmp",  900223
LOADSPRITE "Bilder/Charas/Magier_weiblich_vorn.bmp",    900224
LOADSPRITE "Bilder/Charas/Schütze_männlich_hinten.bmp", 900311
LOADSPRITE "Bilder/Charas/Schütze_männlich_links.bmp",  900312
LOADSPRITE "Bilder/Charas/Schütze_männlich_rechts.bmp", 900313
LOADSPRITE "Bilder/Charas/Schütze_männlich_vorn.bmp",   900314
LOADSPRITE "Bilder/Charas/Schütze_weiblich_hinten.bmp", 900321
LOADSPRITE "Bilder/Charas/Schütze_weiblich_links.bmp",  900322
LOADSPRITE "Bilder/Charas/Schütze_weiblich_rechts.bmp", 900323
LOADSPRITE "Bilder/Charas/Schütze_weiblich_vorn.bmp",   900324

GOSUB Charakter_Auswahl
Chara= 900000+Rasse+Geschlecht+Ansicht
GOSUB Bewegung_Chara_Welt
SHOWSCREEN
END
// ------------------------------------------------------------- //
// -=#  BEWEGUNG_CHARA-_Welt  #=-
// ------------------------------------------------------------- //
SUB Bewegung_Chara_Welt:

y=y
x=x

WHILE TRUE
DRAWSPRITE Chara, x,y
IF KEY(200)
x=x
y=y-1
Ansicht= 1 //auf
ELSEIF KEY(208)
x=x
y=y+1
Ansicht= 4 //ab
ELSEIF KEY(203)
x=x-1
y=y
Ansicht= 2 //links
ELSEIF KEY(205)
x=x+1
y=y
Ansicht= 3 //rechts
ENDIF
SHOWSCREEN
WEND

IF KEY(24)
  GOSUB Optionen
ELSEIF KEY(31)
GOSUB Chara_Status
ELSEIF KEY(23)
GOSUB Chara_Inventar
ENDIF

ENDSUB // BEWEGUNG_CHARA_Welt




// ------------------------------------------------------------- //
// -=#  CHARAKTER_AUSWAHL  #=-
// ------------------------------------------------------------- //
SUB Charakter_Auswahl:

Rasse=Rasse
Geschlecht=Geschlecht

 //Auswahl_Rasse:
 WHILE Rasse_bestaetigung= FALSE
 PRINT "Rassenauswahl", 10,10
 PRINT "Für die Rasse der Magier,   bitte Taste 1 drücken", 20,20
 PRINT "Für die Rasse der Kämpfer,  bitte Taste 2 drücken", 20,30
 PRINT "Für die Rasse der Schützen, bitte Taste 3 drücken", 20,40
 PRINT "Ihre Wahl lautet:", 300,10
 SHOWSCREEN

 IF KEY(02) //1
Rasse$= "Magier"
Rasse= 200
Rasse_bestaetigung= TRUE

 ELSEIF KEY(03) //2
Rasse$= "Kämpfer"
Rasse= 100
Rasse_bestaetigung= TRUE

 ELSEIF KEY(04) //3
Rasse$= "Schützen"
Rasse= 300
Rasse_bestaetigung= TRUE

 ENDIF


 SHOWSCREEN
 WEND

SHOWSCREEN
 //Auswahl_Geschlecht:

 IF Rasse_bestaetigung= TRUE
  WHILE Geschlecht_bestaetigung= FALSE
PRINT "Bitte Geschlecht wählen:", 10,60
PRINT "Für einen männlichen Charackter, bitte Taste M drücken.", 20,70
PRINT "Für einen weiblichen Charackter, bitte Taste W drücken.", 20,80
PRINT "Ihre Wahl lautet:", 300,10
PRINT Rasse$, 440,10
  SHOWSCREEN

IF KEY(50) //M
Geschlecht$= "männlich"
Geschlecht= 10
Geschlecht_bestaetigung= TRUE

ELSEIF KEY(17) //W
Geschlecht$= "weiblich"
Geschlecht= 20
Geschlecht_bestaetigung= TRUE

ENDIF
  WEND

 SHOWSCREEN
 ENDIF

 //Chara_Bestätigung:
 IF Geschlecht_bestaetigung= TRUE AND Rasse_bestaetigung= TRUE
WHILE Chara_bestaetigung= FALSE
Ansicht=4
DRAWSPRITE Chara , 100,100
PRINT "Ist das okay?", 100,150
PRINT "ja=J", 110,160
PRINT "nein=N", 110,170
PRINT "Ihre Wahl lautet:", 300,10
PRINT Rasse$, 440,10
PRINT Geschlecht$, 440,20
SHOWSCREEN

IF KEY(36) //J
Chara_bestaetigung= TRUE
RETURN
ELSEIF KEY(49) //N
Chara_bestaetigung= FALSE
Geschlecht_bestaetigung= FALSE
Rasse_bestaetigung= FALSE
GOSUB Charakter_Auswahl
ENDIF
WEND
 ENDIF

SHOWSCREEN

ENDSUB // CHARAKTER_AUSWAHL





// ------------------------------------------------------------- //
// -=#  OPTIONEN  #=-
// ------------------------------------------------------------- //
SUB Optionen:



ENDSUB // OPTIONEN




// ------------------------------------------------------------- //
// -=#  CHARA_STATUS  #=-
// ------------------------------------------------------------- //
SUB Chara_Status:



ENDSUB // CHARA_STATUS




// ------------------------------------------------------------- //
// -=#  CHARA_INVENTAR  #=-
// ------------------------------------------------------------- //
SUB Chara_Inventar:



ENDSUB // CHARA_INVENTAR
chara soll die sprite nummer dastellen. z.b.: Figur Magier , weiblich schaut nach links. also
    Chara=900222
also muss doch die formel lauten:    
    Chara= 900000+Rasse+Geschlecht+Ansicht
oder täusch ich mich?


ich weiß ist viel aber ich komm einfach nit drauf.
danke im voraus wer sich meiner annimmt.

S.O.P.M.

Also erstmal, auch wenn das nicht unbedingt hier her gehört, warum möchtest du einer Variable ihren eigenen Wert zuweisen. x=x und y=y ergibt für mich einfach keinen Sinn.

Ok, wichtig wäre zu wissen, wie du die Variable vorher hattest. Die Nummern für die Sprites sind doch ziemlich groß, ich würde es zuerst mit kleineren Nummern probieren. Ich kann mir nicht vorstellen, dass du in deinem Spiel noch so viele weitere Sprites verwenden wirst. Hast du mal den Debug-Modus verwendet, zeigt er einen Fehler an?
Notebook PC Samsung E372 Core i5 @ 2,6 GHz; 4 GB RAM; Win 7 Home Premium

Quentin

habs mal probiert, zwar ohne Grafiken, aber der Absturz kam bei mir auch, auch nach Update auf 5.022

Lösung:
Verwende statt der Bildnummern 900xxx einfach mal 9xxx, also kleinere Nummern, dann gehts. Frag mich nicht warum, sollte eigentlich egal sein, wenn alles FLOATs sind. Zumindest läuft das Programm dann.

Schranz0r

So hohe Spritenummern gehen nicht!

Und das : ...wieso zum teufel.... <--- Lass es!(Wir sind ein freundliches Forum!) ;)

Mach erstmal Grundlangentutorials, bevor du anfängst RPG's machen zu wollen. Das bricht dir das genick beim Coden, ob du es nun wahr haben willst oder nicht.

EDIT.:

@ Quentin

Ich hoffe du meinst Integer und hast dich nur verschreiben !
Float = 0.1, 0.02, 0.32 usw
Integer = 1, 2 , 3 , 4  usw
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Quentin

Ähhh Schranzor?
So viel ich weiß sind in GL alle Zahlen FLOATs. Und mir ist durchaus bewußt, was INTEGER und was FLOAT ist ;)
Rein vom Zahlenbereich sollte es daher meiner Meinung nach kein Problem darstellen, wenn man so hohe Nummern verwendet. Aber ich denke, Gernot kann da mehr zu sagen.


es sei denn, intern werden für die Bildnummern SHORT, INT oder sowas verwendet ... ;)

Schranz0r

Aha Quentin ;)

Die BildNummern sind aber Integer, weil du kannst kein Array(z.B Images[] ) mit Floats füllen! ;)

Denk mal drüber nach :D
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Quentin

Gestehe ich kann dir nicht so ganz folgen. Natürlich kann man ein Array mit FLOATs füllen. Warum denn nicht?

Schranz0r

Ok ich erklärs dir ;)


Ein offenes(auch ein Gedimtes) Array[]
Kann nur Felder 0-1-2-3-4-5-6 füllen nicht aber 1.56 oder der gleichen ;)


EDIT:

Gernot , Bitte schreibe das doch mal in die Hilfe mit rein, was das Maximal-Sprite ist als Zahl!
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Quentin

AHHHH! Glaube jetzt versteh ich was du meinst. Du meinst die Dimensionen des Array. Nun ja, die können nur ganzahlig sein.

Arkarin

also habs grad ausprobiert. hab die zahlen der Sprites auf 9xxx beschränkt und es funktioniert. ^^
lol hab gedacht mann könnte den sprites eine beliebig große zahl zuweisen. jetzt bin ich schlauer.

zur erklärung warum gleich ein rpg. in einen rpg sind viele verschiedene Teiile zu programieren. und wenn ich auf was neues stoße was ich beim programieren noch nit kannte mach ich bei ein neues projetkt auf und versuche mich erstmal dort bevor ich es in das rpg einfließen lasse.

z.b.: das bewegen der figur. hab erst eine anderes prog geschrieben wo ich es ausprobiert und meinen wünschen angepasst habe.  alsop könnte man sagen das rpg besteht aud vielen einzel projekten. ^^


Ps: sry wegen den "...wieso zum teufel.... "  wollt nit so radikal werden. hat mich eben nur aufgeregt das das prog nt mehr wollte.


danke für die hilfe.

Schranz0r

I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

S.O.P.M.

Soweit ich mich richtig an einen früheren Thread erinnere, gab es vor dem Update auch schon mal mit Spritenummern im dreistelligen Bereich Probleme. Wie auch immer der maximal mögliche Wert ist, wenn er bei sagen wir 999 liegt, sollte das mehr als ausreichend sein!
Notebook PC Samsung E372 Core i5 @ 2,6 GHz; 4 GB RAM; Win 7 Home Premium

Kitty Hello