3 Ebenen Programmierung

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen

Kernle 32DLL

BeitragSa, Dez 30, 2006 15:21
Antworten mit Zitat
Benutzer-Profile anzeigen
OK, mein Vorredner hat warscheinlich schon das gepostet was du
brauchst, abre evt. hilft das ja auch weiter Smile

Ne "kleine" Funktion die ich mal für ein paar Engine-Tests gebastelt
habe...Ich hoffe sie ist verständlich ^_^

...Grrm, das ganze ist jetzt mittlerweile so groß, das es nicht mehr
hier hin gehört....hab das ganze einfach mal ins Code-Archiv geschreieben.

Link: https://www.blitzforum.de/foru...hp?t=21435

Grüßle:
Kernle
Mein PC: "Bluelight" - Xtreme Gamer PC [Video]
Meine Projekte: Cube-Wars 2010 [Worklog]
Anerkennungen: 1. Platz BCC #7 , 1. Platz BCC #22 , 3. Platz BAC #89
Ich war dabei: NRW Treff III, IV ; Frankfurter BB Treffen 2009

NightPhoenix

BeitragSa, Dez 30, 2006 22:39
Antworten mit Zitat
Benutzer-Profile anzeigen
inwiefern nützt einen das field "Name" was? weil das jetz absolut jeder in seinen Beispielen drinnen hat frag ich. Kann ja sein, dass man dadurch irgendwie schneller zwischen den einzelnen Objekten blättern kann.
mmmh... blättern tut man ja eigentlich mit "next" oder?

mfg.

the FR3AK

BeitragSa, Dez 30, 2006 22:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Jo mit next blätterst du um^^

NightPhoenix

BeitragSa, Dez 30, 2006 22:47
Antworten mit Zitat
Benutzer-Profile anzeigen
also wenn das so ist:

Code: [AUSKLAPPEN]
type haus
field entity
endtype

a.haus = new haus


dann muss ich zum umblättern next verwenden:

so?
Code: [AUSKLAPPEN]
if keyhit(28) then next a.haus


dann müsste ich das nächste objekt in der liste gewählt haben, richtig?

Kernle 32DLL

BeitragSa, Dez 30, 2006 22:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein, Next ist Teil der Schleife.

For ... Next

In der Type-Liste bewegen tust du dich mit den Befehlen
After und Before, sowie First und Before. Les dir dazu am besten
mal die Doku auf www.blitzbase.de durch (oben rechts auf "Befehle",
dann bei "2D" auf "Types"
)

BladeRunner

Moderator

BeitragSa, Dez 30, 2006 22:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Zuerst musst Du mehrere häuser erstellen

Code: [AUSKLAPPEN]
seedrnd millisecs()
type haus
    field nummer
end type

for i = 1 to rand(25)
a.haus = new haus
a\nummer = i
next

nun kannst du mit before, after, first, last und for each durch die einzelnen häuser blättern:

Code: [AUSKLAPPEN]
a = first haus
print a\nummer

a = last haus
print a\nummer

a = before a
print a\nummer

for b.haus = each haus
print b\nummer
next


Hoffe das hilft.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

the FR3AK

BeitragSa, Dez 30, 2006 22:59
Antworten mit Zitat
Benutzer-Profile anzeigen
ich benutz das immer zum Updaten von schüssen...also:

for s.shoot=each shoot
moveentity shoot,0,0,100
next

Hier wird JEDER schuss in jedem schleifendurchgang um 100 in der z achse verschoben Cool

NightPhoenix

BeitragSa, Dez 30, 2006 23:33
Antworten mit Zitat
Benutzer-Profile anzeigen
ok ich habs jetz so dass mit jedem Druck auf Enter ein neuer Würfel erstellt wird und kann diesen mit a und y entlang von der x-Achse bewegen.

Nun ist das alles bissl unübersichtlich und so möchte ich, dass das aktuell aktive Entity rot ist (entitycolor 255,0,0), klappt auch bis auf die eine sache:
das alte bleibt halt rot wenn man ein neues gemacht hat.

wie kann ich dieses alte wieder auf "normalfarbe" (jeweils 255) zurücksetzen?
irgendwie mit before, aber wie?

sorry für all die fragen, aber mit types hatte ich vor 24h noch nix am hut ^^

StepTiger

BeitragSa, Dez 30, 2006 23:41
Antworten mit Zitat
Benutzer-Profile anzeigen
ganz einfach:

Du speicherst in einer Variable den Type, dessen Farbe derzeit Rot ist und setzt sie bei Enter wieder auf die Normalfarbe zurück. Dann erstellst du erst das neue Objekt.
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

NightPhoenix

BeitragSo, Dez 31, 2006 11:54
Antworten mit Zitat
Benutzer-Profile anzeigen
danke steptiger =)

ok ich hab jetz einen relativ gut funktionierenden editor...

nur... ich weiß immernoch nicht wie das beim "level laden" funktionieren soll? Es muss quasi beim Laden absolut alles gelöscht werden, mit Ausnahme der Kamera und dann völlig neue Objekte geladen.
Das hat wiederrum nur einen ganz bestimmten Auslöser.
wie ist sowas denn zu realisieren? bei den spielen auf dem markt gibts ja dann immer solche netten ladebildschirme Wink

Kernle 32DLL

BeitragSo, Dez 31, 2006 16:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Ganz einfach. Nimm mein Script wie ich es hier irentwo schon gepostet habe,
und wandel es so ab, das wenn der Spieler sich in einem bestimmten
Bereich der Map findet, er sämtliche Objekte löscht, und die Funktion
mit dem neuen Mapnamen neu aufruft. OK, klingt kompliziert, beispiel.

Du hast ne Map...Map1.txt, und da stehen nicht nur die Daten für
die Objekte drin, sondern ganz oben auch:

Map2.txt MapChange
{
...hier gibst du dem programm mithilfe von Kordinanten einen Raum
an. z.b. von x -10 bis x 10, von z -10 bis z 10, und von y -10 bis y 10...
}

Wenn man das vernünftig ausließt, kann man dem Programm damit
sagen:

Wenn sich der Spieler zwischen den Kordinanten ..... befindet, soll die
aktuelle Map gelöscht, und eine andere Map (in dem Fall Map2.txt)
geladen werden.


Wenn du möchtest, bau ich dir sowas (oder jemand anderes tut das Wink )

Grüßle:
Kernle
Mein PC: "Bluelight" - Xtreme Gamer PC [Video]
Meine Projekte: Cube-Wars 2010 [Worklog]
Anerkennungen: 1. Platz BCC #7 , 1. Platz BCC #22 , 3. Platz BAC #89
Ich war dabei: NRW Treff III, IV ; Frankfurter BB Treffen 2009

NightPhoenix

BeitragSo, Dez 31, 2006 23:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke an alle die mir das so geduldig beigebracht haben!!! Very Happy

hab ich zwar schon in NEUJAHR Thread unter Smalltalk gepostet, aber will euch den Einsatz meiner frisch erworbenen Kenntnisse nicht verheimlichen Wink


Variable "Silvestertime" frei veränderbar, aber dann gehts zur anderen zeit los Wink
Code: [AUSKLAPPEN]
Graphics3D 640,480,32,0
SetBuffer BackBuffer()

Type feuerwerk
Field entity
End Type

a.feuerwerk=New feuerwerk


timer=CreateTimer(300)


cam=CreateCamera()
   PositionEntity cam,0,0,-20




While Not KeyHit(1)

WaitTimer timer

Rnd MilliSecs()

Silvestertime$="23:59:59"

zaehler=zaehler+1
If zaehler>20 Then zaehler=1

If CurrentTime$()=Silvestertime$ Then
GlueckVariable$="Frohes Neues an alle CODER !!!!!"
zaehler=1
EndIf




If GlueckVariable$="Frohes Neues an alle CODER !!!!!" And zaehler=1 Then
FreeEntity a\entity
a\entity=CreateSphere(10)
EntityColor a\entity,Rnd(0,255),Rnd(0,255),Rnd(0,255)
PositionEntity a\entity,Rnd(-10,10),Rnd(-10,10),Rnd(-10,10)
EndIf

wert#=Sin(MilliSecs()/3)*3

If GlueckVariable$="Frohes Neues an alle CODER !!!!!" And zaehler <> 1 Then ScaleEntity a\entity,wert#,wert#,wert#


RenderWorld
UpdateWorld
Text 0,0,"Wenn es 23:59:59 Uhr ist gibt ein Feuerwerk und einen Glückwunsch ;)"
Text 0,40,"Aktuelle Zeit:   "+CurrentTime$()+"  am  "+CurrentDate$()
Text 200,300,GlueckVariable$
Flip
Wend
FreeTimer timer
End



Frohes Neues! Wink

the FR3AK

BeitragMo, Jan 01, 2007 0:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Very Happy Cool Very Happy
Bitte bitte für die hilfe Smile

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group