you need 3 images, a player, an enemy and a hud (diablo like), i am trying to re-use several codes from the forum and adapting it to work all together. everything was working until i create the enemies :(
"always the bad guys..."
this is the code (veru much commented)
;This script is edited in Brain Editor Pro - v1.0.8 DEMO
; Prototipo rpg, Diablo 2 like game :P
; iniciado el 12/05/2006
AppTitle "Prueba de RPG por Batman!"
Graphics 640,480,0,2 ;ponemos el modo grafico en 640x480 con profundidad 0 modo 2 (ventana)
;Constantes
Const BufferWidth=640, BufferHeight=480
;Constantes de estado
vagar=1
perseguir=2
atacar=3
;Globals
;Global mouseImage=loadimage("punteroMouse.bmp")
;Globals para el jugador
Global ultimoClickX=320
Global ultimoClickY=240
Global playerX=320
Global playerY=240
Global imgPlayer=LoadImage("cristiano.png")
playerVel#=1
;MaskImage imgPlayer,255,0,255
;Globals para enemigos
Global imgEnemigo=LoadImage("archer_m_01_nvo.PNG")
;Global imgEnemigoV=LoadImage("archer_caminando.PNG") ;enemigo vagando
;Global imgEnemigoP=LoadImage("archer_persiguiendo.PNG") ;enemigo persiguiendo
;Global imgEnemigoA=LoadImage("archer_atacando.PNG") ;enemigo atacando
;Variables varias
splashScreen=loadimage("splashScreen.bmp"); pantalla de bienvenida
;ahora creamos una imagen negra donde dibujaremos
Global pictureBuffer=createimage(bufferwidth,bufferheight)
Setbuffer Backbuffer()
;musica de fondo
musicaFondo=playmusic("musicaFondo.mp3")
;pantalla de bienvenida
DrawImage(splashScreen,0,0) ;parte desde la posicion 0,0
Flip
Delay 2000
;freeimage splashScreen
;splashScreen=0
cls
Text 230,240,"Entrando al nivel 1"
Flip
Delay 2000
StopChannel musicaFondo ; detenemos la reproduccion de la musica de introduccion
;main loop
While not keyhit(1)
Cls
;dibujamos el HUD
hud_image=LoadImage("hud.png") ;el HUD
MaskImage hud_image,255,0,255
DrawImage(hud_image,0,350)
;Flip
If Mousedown(1) Then ultimoClickX=Mousex() ultimoClickY=MouseY()
; If ultimoClick <= 593 or ultimoClickY <= 371 then
DrawImage imgPlayer,playerX-32,playerY-32
If playerX < ultimoClickX then playerX = playerX+1
If playerx > ultimoClickX then playerX = playerX-1
If playerY < ultimoClickY then playerY = playerY+1
If playerY > ultimoClickY then playerY = playerY-1
; End If
; nuestro enemigo aparece en escena
enemyX#=rand(0,640)
enemyY#=rand(0,480)
enemyVel=.5
enemyEstado=vagar
dist_perseguir=100
dist_atacar=20
pos_VagarX=rand(0,640)
pos_VagarY=rand(0,480)
MaskImage imgPlayer,255,0,255
; movimientos del enemigo
; obtenemos la distancia entre ambos
dis# = Sqr(((playerX-enemyX)*(playerX-enemyX)) + ((playerY-enemyY)*(playerY-enemyY)))
; inteligencia artificial
If enemyEstado=vagar and dis#<dist_perseguir then enemyEstado=perseguir
If enemyEstado=perseguir and dis#<dist_perseguir then enemyEstado=vagar
If enemyEstado=perseguir and dis#<dist_atacar then enemyEstado=atacar
If enemyEstado=atacar and dis#>dist_atacar then enemyEstado=perseguir
; ejecutar acciones segun estado actual
If enemyEstado=vagar
If enemyX<pos_VagarX then enemyX=enemyX+enemyVel
If enemyX>pos_VagarX then enemyX=EnemyX-enemyVel
If enemyY>pos_VagarY then enemyY=enemyY-enemyVel
If enemyY<pos_VagarY then enemyY=enemyY+enemyVel
dis# = Sqr(((pos_VagarX-enemyX)*(pos_VagarX-enemyX)) + ((pos_VagarY-enemyY)*(pos_VagarY-enemyY)))
if dis#<50 then
pos_VagarX=rand(0,640)
pos_VagarY=rand(0,480)
end if
end if
If enemyEstado=perseguir
If enemyX<playerX Then enemyX=enemyX+enemyVel
If enemyX>playerX Then enemyX=enemyX-enemyVel
If enemyY>playerY Then enemyY=enemyY-enemyVel
If enemyY<playerY Then enemyY=enemyY+enemyVel
EndIf
If enemyEstado=atacar
If enemyX<playerX Then enemyX=enemyX+enemyVel
If enemyX>playerX Then enemyX=enemyX-enemyVel
If enemyY>playerY Then enemyY=enemyY-enemyVel
If enemyY<playerY Then enemyY=enemyY+enemyVel
EndIf
; ahora dibujamos el enemigo
drawimage imgEnemigo,enemyX,EnemyY
If estate=roam Then drawimage imgEnemigo,enemyX,EnemyY
If estate=chase Then drawimage imgEnemigo,enemyX,EnemyY
If estate=attack Then drawimage imgEnemigo,enemyX,EnemyY
; imprimimos la posicion actual de nuestro personaje
Text 0,0,"Actual posicion X del jugador: "+ultimoClickX
Text 0,12,"Actual posicion Y del jugador: "+ultimoClickY
;pasamos la pagina (flip)
Flip
Wend ;fin del main loop
End
"always the bad guys..."
this is the code (veru much commented)
;This script is edited in Brain Editor Pro - v1.0.8 DEMO
; Prototipo rpg, Diablo 2 like game :P
; iniciado el 12/05/2006
AppTitle "Prueba de RPG por Batman!"
Graphics 640,480,0,2 ;ponemos el modo grafico en 640x480 con profundidad 0 modo 2 (ventana)
;Constantes
Const BufferWidth=640, BufferHeight=480
;Constantes de estado
vagar=1
perseguir=2
atacar=3
;Globals
;Global mouseImage=loadimage("punteroMouse.bmp")
;Globals para el jugador
Global ultimoClickX=320
Global ultimoClickY=240
Global playerX=320
Global playerY=240
Global imgPlayer=LoadImage("cristiano.png")
playerVel#=1
;MaskImage imgPlayer,255,0,255
;Globals para enemigos
Global imgEnemigo=LoadImage("archer_m_01_nvo.PNG")
;Global imgEnemigoV=LoadImage("archer_caminando.PNG") ;enemigo vagando
;Global imgEnemigoP=LoadImage("archer_persiguiendo.PNG") ;enemigo persiguiendo
;Global imgEnemigoA=LoadImage("archer_atacando.PNG") ;enemigo atacando
;Variables varias
splashScreen=loadimage("splashScreen.bmp"); pantalla de bienvenida
;ahora creamos una imagen negra donde dibujaremos
Global pictureBuffer=createimage(bufferwidth,bufferheight)
Setbuffer Backbuffer()
;musica de fondo
musicaFondo=playmusic("musicaFondo.mp3")
;pantalla de bienvenida
DrawImage(splashScreen,0,0) ;parte desde la posicion 0,0
Flip
Delay 2000
;freeimage splashScreen
;splashScreen=0
cls
Text 230,240,"Entrando al nivel 1"
Flip
Delay 2000
StopChannel musicaFondo ; detenemos la reproduccion de la musica de introduccion
;main loop
While not keyhit(1)
Cls
;dibujamos el HUD
hud_image=LoadImage("hud.png") ;el HUD
MaskImage hud_image,255,0,255
DrawImage(hud_image,0,350)
;Flip
If Mousedown(1) Then ultimoClickX=Mousex() ultimoClickY=MouseY()
; If ultimoClick <= 593 or ultimoClickY <= 371 then
DrawImage imgPlayer,playerX-32,playerY-32
If playerX < ultimoClickX then playerX = playerX+1
If playerx > ultimoClickX then playerX = playerX-1
If playerY < ultimoClickY then playerY = playerY+1
If playerY > ultimoClickY then playerY = playerY-1
; End If
; nuestro enemigo aparece en escena
enemyX#=rand(0,640)
enemyY#=rand(0,480)
enemyVel=.5
enemyEstado=vagar
dist_perseguir=100
dist_atacar=20
pos_VagarX=rand(0,640)
pos_VagarY=rand(0,480)
MaskImage imgPlayer,255,0,255
; movimientos del enemigo
; obtenemos la distancia entre ambos
dis# = Sqr(((playerX-enemyX)*(playerX-enemyX)) + ((playerY-enemyY)*(playerY-enemyY)))
; inteligencia artificial
If enemyEstado=vagar and dis#<dist_perseguir then enemyEstado=perseguir
If enemyEstado=perseguir and dis#<dist_perseguir then enemyEstado=vagar
If enemyEstado=perseguir and dis#<dist_atacar then enemyEstado=atacar
If enemyEstado=atacar and dis#>dist_atacar then enemyEstado=perseguir
; ejecutar acciones segun estado actual
If enemyEstado=vagar
If enemyX<pos_VagarX then enemyX=enemyX+enemyVel
If enemyX>pos_VagarX then enemyX=EnemyX-enemyVel
If enemyY>pos_VagarY then enemyY=enemyY-enemyVel
If enemyY<pos_VagarY then enemyY=enemyY+enemyVel
dis# = Sqr(((pos_VagarX-enemyX)*(pos_VagarX-enemyX)) + ((pos_VagarY-enemyY)*(pos_VagarY-enemyY)))
if dis#<50 then
pos_VagarX=rand(0,640)
pos_VagarY=rand(0,480)
end if
end if
If enemyEstado=perseguir
If enemyX<playerX Then enemyX=enemyX+enemyVel
If enemyX>playerX Then enemyX=enemyX-enemyVel
If enemyY>playerY Then enemyY=enemyY-enemyVel
If enemyY<playerY Then enemyY=enemyY+enemyVel
EndIf
If enemyEstado=atacar
If enemyX<playerX Then enemyX=enemyX+enemyVel
If enemyX>playerX Then enemyX=enemyX-enemyVel
If enemyY>playerY Then enemyY=enemyY-enemyVel
If enemyY<playerY Then enemyY=enemyY+enemyVel
EndIf
; ahora dibujamos el enemigo
drawimage imgEnemigo,enemyX,EnemyY
If estate=roam Then drawimage imgEnemigo,enemyX,EnemyY
If estate=chase Then drawimage imgEnemigo,enemyX,EnemyY
If estate=attack Then drawimage imgEnemigo,enemyX,EnemyY
; imprimimos la posicion actual de nuestro personaje
Text 0,0,"Actual posicion X del jugador: "+ultimoClickX
Text 0,12,"Actual posicion Y del jugador: "+ultimoClickY
;pasamos la pagina (flip)
Flip
Wend ;fin del main loop
End