
Je voudrais me lancer dans la conception d'un mini-jeu où le personnage qu'on incarne se déplace dans un monde en 2D. Je pense que la principale difficulté va surtout être dans la gestion de la lumière ... Je voudrais au final obtenir un résultat semblable à celui la : http://www.mojang.com/notch/j4k/l4kd/ Est-ce réalisable ? Le langage Basic est il adapté pour faire ceci ?
Voici une image explicative :

Merci d'avance

Pour le moment, j'ai "réussi" à faire ça, après une journée de travail ( oui, je sais c'est peu


Code : Tout sélectionner
InitSprite()
InitSprite3D()
InitKeyboard()
InitMouse()
#player=0
#ply = 1
#map = 2
#col = 3
ox = 800/2
oy= 600/2
x=ox
y=oy
v = 3
OpenWindow(0,0,0,800,600,"Zombie Land v0.1", #PB_Window_ScreenCentered | #PB_Window_SystemMenu)
OpenWindowedScreen(WindowID(0),0,0,800,600,0,0,0)
CreateSprite(#Ply,30,10,#PB_Sprite_Texture)
StartDrawing(SpriteOutput(#Ply))
Box(0,0,30,10,#Blue)
StopDrawing()
CreateSprite3D(#player,#ply)
UsePNGImageDecoder()
If LoadImage(#map,"map.png")=0 : Debug "Error load : map.png" : EndIf
If LoadImage(#col,"col.png")=0 : Debug "Error load : col.png" : EndIf
CreateSprite(5,800*2,600*2)
StartDrawing(SpriteOutput(5))
DrawImage(ImageID(#col),0,0,800*2,600*2)
StopDrawing()
Repeat
ExamineMouse()
ExamineKeyboard()
mx = MouseX()
my = MouseY()
Repeat
event = WindowEvent()
If event = #PB_Event_CloseWindow
End
EndIf
Until event=0
If SpritePixelCollision(#ply,ox,oy,5,x,y)
col=1
Else
col=0
EndIf
If KeyboardPushed(#PB_Key_Up) And col<>1
y+v
EndIf
If KeyboardPushed(#PB_Key_Down) And col<>1
y-v
EndIf
If KeyboardPushed(#PB_Key_Right) And col<>1
x-v
EndIf
If KeyboardPushed(#PB_Key_Left) And col<>1
x+v
EndIf
If mx-ox <>0 : calc = (my-oy)/(mx-ox) : EndIf
ang = Degree(ATan(calc)) + 90
If (my < oy And mx < ox) Or (my > oy And mx < ox)
ang + 180
Else
ang + 360
EndIf
FlipBuffers()
ClearScreen(#Black)
StartDrawing(ScreenOutput())
DisplayTransparentSprite(5,x,y)
DrawImage(ImageID(#map),x,y,800*2,600*2)
Circle(MouseX(),MouseY(),2,#Red)
StopDrawing()
Start3D()
RotateSprite3D(#Player,ang,#PB_Absolute)
DisplaySprite3D(#player,800/2,600/2)
Stop3D()
ForEver


by Typhoon
