Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Inventar für ein Spiel/ Scrollbalken im Dos Style

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
masterherpo



Anmeldungsdatum: 22.01.2006
Beiträge: 102

BeitragVerfasst am: 12.09.2007, 11:10    Titel: Inventar für ein Spiel/ Scrollbalken im Dos Style Antworten mit Zitat

Hallo, ich auch brauche Hilfe bei der Inventarprogrammierung für ein Spiel.
Ich habe es so gemacht: Wenn man einen Gegenstand findet, wird eine variable auf eins gesetzt. Wenn wenn die Variable=1 ist, wird der Gegenstand im Inventar angezeigt (an einer bestimmten Stelle mit Locate). Das Problem ist jetzt, dass ich mehrere neue Gegenstände einbauen will, aber mein Inventarbildschirm fast voll ist. Daher brauche ich einen Scrollbalken, den man wie bei alten Dos-Hilfedateien mit den Pfeiltasten hoch und runter bewegen kann-> auch vom aussehen in diesem Stil.

Kann mir jemand da helfen?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 12.09.2007, 11:40    Titel: Antworten mit Zitat

knifflige Sache happy

hab mal versucht auf die schnelle was zusammen zu basteln zwinkern
vielleicht hilfts....

Code:

Randomize Timer
Const MaxObj=100 'Maximala Anzahl an Objekten
Const ViewObj=8 'Maximale Anzahl gleichzeitig anzeigbarer Objekte
Const MaxScrl=Int(MaxObj/ViewObj)

Dim Objekte(1 to MaxObj) as byte 'Array fuer die Objekte

''Zum testen Objekte zufaellig setzen
for l as integer = 1 to MaxObj
    Objekte(l)=Int(rnd*2)
next l
''



''Objekte zaehlen
Dim count as integer
count=0
for l as integer = 0 to MaxObj
    If Objekte(l) Then count+=1
next l
?count 'Anzahl anzeigen lassen

'Scrollbalken' setzen und ggf. zuruecksetzen
Dim Scrl as Integer=1
Do
 If (Scrl/ViewObj)>MaxScrl Then Scrl-=1
Loop While (Scrl/ViewObj)>MaxScrl


'objekte anzeigen
Dim ll as integer ''zaehlervariable
Dim lll as integer

For l as integer=0 to 7
   
    ''Finde naechstes Objekt
    Do
        ll+=1
        If Objekte(ll)=1 Then lll+=1
        If lll > ((Scrl*ViewObj)+l) Then ?"Objekt Nr: " &ll:exit do
    loop
Next l

sleep

_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
AndT



Anmeldungsdatum: 02.04.2007
Beiträge: 481

BeitragVerfasst am: 12.09.2007, 14:38    Titel: Antworten mit Zitat

Ein kleines Beispiel um Schaltflächen für die Maus zu realisieren zwinkern
Code:
dim shared as integer functionposx(1 to 99999)
dim shared as integer functionposy(1 to 99999)
dim as integer mausX,mausY,MB
sub MenuKnopf(x as integer ,y as integer ,char as ubyte,functionnr as integer)
    locate x,y,0
    print chr(char)
    functionposX(functionnr)=X-1
    functionposY(functionnr)=Y-1
   
end sub

MenuKnopf (12,12,asc("X"),1)
print
Print "Bitte Linksklick mit der Maus auf das X.."
do
    getmouse mausY,MausX,,MB
   
    if mausX = functionposx(1) and mausY = functionposy(1) and MB = 1 then Print "Easy ;)":sleep 1000:exit do
    sleep 1
    loop

_________________
Bis irgendwann... grinsen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
masterherpo



Anmeldungsdatum: 22.01.2006
Beiträge: 102

BeitragVerfasst am: 12.09.2007, 16:29    Titel: Antworten mit Zitat

Danke euch beiden aber wirklich weiterhelfen tut mir das nicht....
Habe mir auch verschiedene Text-Scrolling.beispiele angesehen aber irgendwie hilft mir das nicht so ganz....könnte man mit FB eine art Inline-Frame einbauen (ohne winapi etc. nutzen zu müssen, ich will mir die Option offen halten mein spiel auch auf Linux complimeiren zu können).

Der Scrollbalken ist nicht so wichtig, Hauptsache ich kann mit den Pfeitasten scrollen (natürlich nur solange notwendig, damit man nicht endlos scrollt).
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
AndT



Anmeldungsdatum: 02.04.2007
Beiträge: 481

BeitragVerfasst am: 12.09.2007, 17:47    Titel: Antworten mit Zitat

ich arbeite gerade dran..
der folgende code simuliert mein vorhaben..
links das rollenspiel live und rechts der scroll des inventars.
wenns erstma richtig funzt, folgt die umsetzung als funktion und support für bilder etc zwinkern
Code:
screenres 400,400
dim as string text1 = "text"
dim as string text2 = "text2"
dim as integer haelfte = 200

dim as integer positionx,positiony
'positiony=haelfte-abzug
positiony=300
for positionx=400 to 1 step -1
   
    draw string (positiony,positionx+1),text1,0
    draw string (positiony,positionx),text1,15
    draw string (positiony,positionx+9),text2,0
    draw string (positiony,positionx+8),text2,15
   
    draw string (INT(RND*200)+1,INT(RND*200)+1),"XXX",positionx mod 255
    sleep 5
next
sleep

_________________
Bis irgendwann... grinsen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 13.09.2007, 09:42    Titel: Antworten mit Zitat

Vielleicht hilft an dieser Stelle

http://www.dreael.ch/Deutsch/BASIC-Knowhow-Ecke/Abenteuerspiel.html

weiter, was das Thema Gegenstandverwaltung betrifft. Hinweis: Die dort gezeigten Codebeispiele müssten eigentlich weitgehend 1:1 in FreeBasic lauffähig sein.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 13.09.2007, 09:46    Titel: Antworten mit Zitat

Am einfachsten ist es wenn du ein Array benutzt, eine Liste sozusagen die deine Objekte 'symbolisieren'

wie schon oben in meinem Versuch...

Dim Objekte(1 to maxiamaleAnzahlanobjekten) as byte

jedes objekt hat nun seinen Platz... (bitte eine nummer ziehen und warten durchgeknallt )

Code:

Dim AnzahlObjekte as Integer          'Hier halten wir fest, wieviele Objekte wir bei uns tragen
Dim ObjektNummer(1 to 100) as Integer 'Hier wird reingeschrieben, um welche Objekte es sich handelt
AnzahlObjekte=0
for l as integer=1 to 100
    If Objekte(l) Then
        ObjektNummer(AnzahlObjekte)=l
        AnzahlObjekte+=1               
    End If
next l


So kannst Du nun die anzahl Deiner Objekte zaehlen und in einem zweiten Array haelst Du die nummer der Objekte fest....

somit weisst Du nun, wieviele Objekte Du hast und welche das sind...

der rest sollte dann nicht mehr so schwer sein zwinkern
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
masterherpo



Anmeldungsdatum: 22.01.2006
Beiträge: 102

BeitragVerfasst am: 13.09.2007, 11:44    Titel: Antworten mit Zitat

Ich habe deinen Code nicht ganz verstanden, aber das Prinzip grinsen

Habe nun etwas ähnliches geproggt, ist noch nicht ganz fertig, aber ich denke das klappt zwinkern

Vielen Dank lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz