RPG- Gegner automatisch laufen lassen !!

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

kai

Betreff: RPG- Gegner automatisch laufen lassen !!

BeitragFr, März 17, 2006 23:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Soooo... das unten ist der Quelltext meines biherigem spilt aber ich will jetzt einen Gegner einbauen welcher sich automatisch bewegt und auch selber die richtung wechselt !!
ich glaube ihr wisst was ich meine !!
so ragnarok like ^^
wäre sehr dankbar für eure Hilfe ! Very Happy



Code: [AUSKLAPPEN]
Graphics 640,480,16,2
tileset = LoadAnimImage("F:\Programme\html\my game\grafiken\tileset5.bmp",32,32,0,14)

char = LoadAnimImage("F:\Programme\html\my game\grafiken\held1.bmp",32,32,0,4)



;px Variable des Spielers
px = 6
;py Variable des Spielers
py = 6
;Direckt move = 1 damit die Figur auch am Anfang sichbar ist
move = 1

Dim map(20,20)

;Legende:
; 0 = Wiese
; 1 = Laminat
; 2 = Schalter
; 3 = Tür offen
; 4 = Schalter Laminat
; 5 = Mauer
; 6 = Wasser
; 7 = Tanne
; 8 = Stein
; 9 = Fenster
;10 = Baum
;11 = Trainer
;12 = Dach
;13 = Tür


Data 7,7,10,10,10,7,12,12,12,12,12,12,7,7,7,10,7,7,7,10,10
Data 10,10,7,0,0,0,5,9,5,5,5,9,0,0,0,0,0,0,0,0,7
Data 7,10,10,0,0,0,5,5,5,13,5,5,0,0,0,0,0,0,0,0,10
Data 7,7,7,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7
Data 7,7,7,7,7,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,10
Data 7,7,7,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10
Data 10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7
Data 10,0,0,0,0,0,0,0,6,6,0,0,0,0,10,0,0,10,0,0,7
Data 10,0,0,0,0,0,0,6,6,6,6,0,0,0,0,0,0,0,0,0,10
Data 7,0,0,7,0,0,0,6,6,6,6,6,0,0,0,7,0,0,0,0,7
Data 10,0,0,0,0,0,0,0,6,6,0,0,0,0,0,0,10,0,0,0,10
Data 7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10
Data 7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10
Data 7,0,0,0,7,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,7
Data 7,0,0,0,10,10,10,0,0,11,0,7,0,0,0,0,0,0,0,0,6
Data 10,0,0,0,0,7,0,0,0,0,0,10,0,0,0,0,0,0,0,0,6
Data 10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,6
Data 10,0,0,0,0,0,0,6,6,6,6,1,1,1,6,6,6,6,6,6,6
Data 7,0,0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6
Data 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6
Data 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6

For y = 0 To 20
For x = 0 To 20

Read map(x,y)
Next
Next




Repeat
SetBuffer BackBuffer()
Cls

;ESC-Taste zum Beenden
If KeyDown(1) Then End




For y = 0 To 20
For x = 0 To 20
DrawBlock tileset,x*32-scrollx,y*32-scrolly,map(x,y)
Next
Next

.Spieler
Dim feld(4)
feld(1) =0
feld(2) =1
feld(3) =2
feld(4) =3


;einfach wenn tastendruck dann
If KeyDown(208) Then ; runter
;frame des Spielers festlegen
f = feld(1) : feld(1) = feld(1) + 1
;wenn die position des spielers (px,py+1) mit einem tile kollidiert, dass in der array einen höeren
;wert als 4 hat geht der if-satz nicht weiter und die figur bleibt stehen 
;die 4 ist gleichzeitig das frame des tilesets
If map(px,py+1) < 4 Then
;die figur wird um ein tile bewegt
py = py + 1 : VWait :VWait : VWait
;die variable scrollx/y wird verändert und beim nächsten mal
;wenn die hauptschleife durchlaufen wird. malt man die karte halt
;an der position x/y-scrollx/y gemalt
;achja und - 32 weil die figur sich auch nur um 32 pixel
;bewegt.
scrolly = scrolly + 32
;überträgt die spielerkoordinaten auf die x und y variablen der map und malt unsere figur
move = 1
End If
End If

If KeyDown(200) Then ;nach oben
f = feld(4) : feld(4) = feld(4) + 1
If map(px,py-1) < 4 Then
py = py - 1  : VWait :VWait : VWait
scrolly = scrolly - 32
move = 1 :
End If
End If

If KeyDown(203) Then
f = feld(3) : feld(3) = feld(3) + 1
If map(px-1,py) < 4 Then
px = px - 1 : VWait :VWait : VWait
 scrollx = scrollx - 32
move = 1
End If
End If

If KeyDown(205) Then
f = feld(2) : feld(2) = feld(2) + 1
If map(px+1,py) < 4 Then
px = px + 1 : VWait :VWait : VWait
scrollx = scrollx + 32
move = 1
End If
End If


;wenn man die leertaste drückt
If KeyHit(57) Then
;und die spielerposition auf den hebel-tile befindet
If map(px,py) = 2 Then
;dann wird die gesamte karte eingelesen und alle tür-tiles in graß-tiles
;umgewandelt
For y = 0 To 20
For x = 0 To 20
If map(x,y) = 13 Then
map(x,y) = 3
End If
Next
Next
End If
End If
;Screeenshooot
;####################################
;wenn man die taste drückt
If KeyHit(88) Then ; F 12
SaveBuffer(FrontBuffer(),"F:\Programme\html\my game\shot" + Str$(Shot) + ".bmp")
Shot = Shot + 1
For y = 0 To 20
For x = 0 To 20
Next
Next
EndIf

;Pauseee
;####################################
;wenn man die taste drückt
If KeyHit(25) Then ; P
font = LoadFont("Times New Roman" ,80,0,0,0)
SetFont font
Locate 150,200
Print "Pause"
FlushKeys
WaitKey
FreeFont font
For y = 0 To 20
For x = 0 To 20

Next
Next
EndIf







;wenn move = 1 dann übertrage x auf px*32(*32 da die array so klein ist bei *1 oder *2 kommt schnell
;(array index out of bouds) und das wollen wir nicht wenn die koordinaten des spielers mit den
;koordinaten der map in verbindung gebracht worden sind, malen wir die figur
;auf der position x,y wir wollen die figur ja mit der map kollidieren lassen und nicht mit dem Nichts
;und da die map nun mal in die x und y koordinaten gespeichert wurden müssen wir das auch so
;berücksichtigen.
If move = 1 Then x = px * 32: y = py * 32:DrawImage  char,x-scrollx,y-scrolly,f:  Delay 50


;flippen und zum anfang zurück
Flip
Forever



wie kann ich jetzt einen ´gegner einsetzten dr sich automatisch bewegt und auch mal die richtung wechselt ??
das ist hier die Frage xD

~EDITIERT~

Das nächste Mal selber Code-Boxen benutzen.

mfg
YellowRider
Lebe deine Träume .. aber Träume nicht dein Leben !!
 

ke^kx

BeitragSa, März 18, 2006 4:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm, hm. Was du willst ist eine KI oder zumindest eine AI. Ein sehr aufwendiges Thema, vorallem wenn man sieht, dass du das alles noch mit einem Tutorial gemacht hast. Ansonsten informier dich mal über Google über Künstliche Intiligenz im Allgemeinen, oder geh auf www.robsite.de und guck da unter KI.

Jiriki
http://i3u8.blogspot.com
Asus Striker II
Intel Core2Quad Q9300 @ 2,5 GHz (aber nur zwei Kerne aktiv aufgrund der Instabilität -.-)
Geforce 9800 GTX
2GB RAM
  • Zuletzt bearbeitet von ke^kx am Sa, März 18, 2006 14:01, insgesamt einmal bearbeitet

aMul

Sieger des Minimalist Compo 01/13

BeitragSa, März 18, 2006 4:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Jiriki hat Folgendes geschrieben:
Du meinst www.robsite.de , oder? Smile
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans!
Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver
 

ke^kx

BeitragSa, März 18, 2006 14:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Oh, ja klar. Das war mitten in der Nacht als ich das Geschrieben hab Wink *korrigier*

Jiriki
http://i3u8.blogspot.com
Asus Striker II
Intel Core2Quad Q9300 @ 2,5 GHz (aber nur zwei Kerne aktiv aufgrund der Instabilität -.-)
Geforce 9800 GTX
2GB RAM

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group