i use blender for make model.Object scene is character, terrain, some building, and tree. For terrain collision detection i use collisionpolygon.but its dificult for set height the collisionpoygon equal with terrain.Is there for more easy way?

Yes. You can create a terrain in any terrain editor that supports greyscale heightmaps, and use the GeoMipTerrain to load it in. Next, you update the position of the player every frame by doing:

player.setZ(root, terrain.getElevation(player.getX(root), player.getY(root)) * root.getSz())

Thanks.I have look your game screenshot.it’s nice screenshot,how about the game fps?

One more question, can Panda3d make loading screen?i have search for the tutorial anywhere but didn’t find any tutorial.

Yeah, loading screens are quite easy. Try something like this:

import direct.directbase.DirectStart
from direct.gui.OnscreenText import OnscreenText
#create a loading screen here:
loadingText = OnscreenText("Loading...", fg=(1,1,1,1))
#or whatever you like (an image, an animation, whatever.)
#render two frames

#now, put the rest here. Like the rest of your imports, and your classes.

class World(blah dee blah):
  yadda yadda

#just before you call run(), hide the loading screen.
#ok, now run the game.

This is just abstract code, but something like this is the basic idea.